Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class sleepy {
  5. public static void main(String[] args)throws IOException {
  6. FastScanner kb = new FastScanner(new File("sleepy.in"));
  7. PrintWriter pw = new PrintWriter(new FileWriter(new File("sleepy.out")));
  8.  
  9. int n = kb.nextInt();
  10. ArrayList<Integer> cows = new ArrayList<>();
  11. for(int i = 0; i < n; i++)
  12. {
  13. cows.add(kb.nextInt());
  14. }
  15. if(n == 2 && cows.get(0) > cows.get(1)) {
  16. System.out.print(1 + "\n" + 1);
  17. return;
  18. }
  19. int sortedindex = -1;
  20. for(int i = n-2; i >= 0; i--)
  21. {
  22. if(cows.get(i) > cows.get(i+1)) {
  23. sortedindex = i+1;
  24. break;
  25. }
  26. }
  27.  
  28. //
  29.  
  30. ArrayList<Integer> sorted = new ArrayList<>();
  31. while(sortedindex<cows.size()){
  32. sorted.add(cows.remove(sortedindex));
  33. }
  34. //System.out.println("sorted " + sorted);
  35. //System.out.println("cows " + cows);
  36. int ans = 0;
  37. String ret = "";
  38. while(sortedindex != 0)
  39. {
  40. int indexinsorted = Collections.binarySearch(sorted, cows.get(0));
  41. if(indexinsorted < 0)
  42. {
  43. indexinsorted = (-1)*(indexinsorted+1);
  44. }
  45. //System.out.println("index in sorted for element " + cows.get(0) + " is " + indexinsorted);
  46. sorted.add(indexinsorted, cows.remove(0));
  47. ret+=sortedindex+indexinsorted-1+" ";
  48. sortedindex--;
  49. ans++;
  50. }
  51. pw.println(ans);
  52. pw.println(ret.substring(0, ret.length()-1));
  53. pw.close();
  54. }
  55. }
  56.  
  57. class FastScanner {
  58. BufferedReader br;
  59. StringTokenizer st;
  60.  
  61. public FastScanner(File file) {
  62. try {
  63. br = new BufferedReader(new FileReader(file));
  64. } catch (FileNotFoundException e) {
  65. // TODO Auto-generated catch block
  66. e.printStackTrace();
  67. }
  68. }
  69.  
  70. public FastScanner() {
  71. br = new BufferedReader(new InputStreamReader(System.in));
  72. }
  73.  
  74. String nextToken() {
  75. while (st == null || !st.hasMoreElements()) {
  76. try {
  77. st = new StringTokenizer(br.readLine());
  78. } catch (IOException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. }
  82. }
  83. return st.nextToken();
  84. }
  85.  
  86. String nextLine() {
  87. st = null;
  88. try {
  89. return br.readLine();
  90. } catch (IOException e) {
  91. // TODO Auto-generated catch block
  92. e.printStackTrace();
  93. }
  94. return null;
  95. }
  96.  
  97. int nextInt() {
  98. return Integer.parseInt(nextToken());
  99. }
  100.  
  101. long nextLong() {
  102. return Long.parseLong(nextToken());
  103. }
  104.  
  105. double nextDouble() {
  106. return Double.parseDouble(nextToken());
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement