Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class sleepy {
- public static void main(String[] args)throws IOException {
- FastScanner kb = new FastScanner(new File("sleepy.in"));
- PrintWriter pw = new PrintWriter(new FileWriter(new File("sleepy.out")));
- int n = kb.nextInt();
- ArrayList<Integer> cows = new ArrayList<>();
- for(int i = 0; i < n; i++)
- {
- cows.add(kb.nextInt());
- }
- if(n == 2 && cows.get(0) > cows.get(1)) {
- System.out.print(1 + "\n" + 1);
- return;
- }
- int sortedindex = -1;
- for(int i = n-2; i >= 0; i--)
- {
- if(cows.get(i) > cows.get(i+1)) {
- sortedindex = i+1;
- break;
- }
- }
- //
- ArrayList<Integer> sorted = new ArrayList<>();
- while(sortedindex<cows.size()){
- sorted.add(cows.remove(sortedindex));
- }
- //System.out.println("sorted " + sorted);
- //System.out.println("cows " + cows);
- int ans = 0;
- String ret = "";
- while(sortedindex != 0)
- {
- int indexinsorted = Collections.binarySearch(sorted, cows.get(0));
- if(indexinsorted < 0)
- {
- indexinsorted = (-1)*(indexinsorted+1);
- }
- //System.out.println("index in sorted for element " + cows.get(0) + " is " + indexinsorted);
- sorted.add(indexinsorted, cows.remove(0));
- ret+=sortedindex+indexinsorted-1+" ";
- sortedindex--;
- ans++;
- }
- pw.println(ans);
- pw.println(ret.substring(0, ret.length()-1));
- pw.close();
- }
- }
- class FastScanner {
- BufferedReader br;
- StringTokenizer st;
- public FastScanner(File file) {
- try {
- br = new BufferedReader(new FileReader(file));
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public FastScanner() {
- br = new BufferedReader(new InputStreamReader(System.in));
- }
- String nextToken() {
- while (st == null || !st.hasMoreElements()) {
- try {
- st = new StringTokenizer(br.readLine());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- return st.nextToken();
- }
- String nextLine() {
- st = null;
- try {
- return br.readLine();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- int nextInt() {
- return Integer.parseInt(nextToken());
- }
- long nextLong() {
- return Long.parseLong(nextToken());
- }
- double nextDouble() {
- return Double.parseDouble(nextToken());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement