CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:YvMa^Na9
Submission time:2016-10-04 22:14:48 +0300
Language:Java
Status:COMPILE ERROR

Compiler report

input/jarjestys.java:57: error: ']' expected
        int[] temp = int[toFlip+1];//Arrays.copyOfRange(array, 0, toFlip + 1); //-1??
                         ^
input/jarjestys.java:57: error: ';' expected
        int[] temp = int[toFlip+1];//Arrays.copyOfRange(array, 0, toFlip + 1); //-1??
                                 ^
2 errors

Code

//import java.util.Scanner;
//import java.util.Arrays;
//import java.util.ArrayList;
public class jarjestys {

    public static void main (String[] args) {
        Jarjestys();
    }

    public static void Jarjestys() {
    //    Scanner scanner = new Scanner(System.in);
        IO io = new IO();
        int a = io.nextInt();//scanner.nextInt();
        int y;
        int[] nums = new int[a];
        //ArrayList<Integer> turns = new ArrayList<Integer>();
        int[] turns = new int[a*2];
        int nextIndex = 0;
        for (int j = 0; j < a; j++) {
            nums[j] = io.nextInt();//scanner.nextInt();
        }
        for (int i = a; i > 1; i--) {
            //System.out.println("FL RES: " + findLargest(nums, i));
            y = findLargest(nums, i);
            if (y + 1 != i) {
           //     System.out.println("y: " + y + "preflip1:" + Arrays.toString(nums));
                flip(nums, y);
            //      System.out.println("y: " + y + "afterflip1:" + Arrays.toString(nums));
                turns[nextIndex++] = y + 1; //.add(y+1);
                y = nums.length - a + i - 1;
                flip(nums, y);
         //       System.out.println("x: " + x + "afterflip2" + Arrays.toString(nums));
                turns[nextIndex++] = y + 1;//.add(y+1);
                //System.out.println(Arrays.toString(nums));
            }
        }
        //System.out.println(turns.size());
        io.println(nextIndex);
        //System.out.println(Arrays.toString(turns.toArray()));
        for (int i = 0; i < nextIndex; i++) {
            //System.out.print(turns.get(i) + " ");
            io.print(turns[i] + " ");
        }
        io.close();

    }
    private static int findLargest(int[] array, int toSearch) { //returns indexOf(largest)
        for(int i = 0; i < toSearch; i++) {
            if (array[i] == toSearch) {
                return i;
            }
        }
        return -1;
    }
    private static void flip(int[] array, int toFlip) {
        //System.out.println(toFlip);
        int[] temp = int[toFlip+1];//Arrays.copyOfRange(array, 0, toFlip + 1); //-1??
        for(int i = 0; i < toFlip + 1; i++) {
            temp[i] = array[toFlip-i];
        }
        //System.out.println("TEMP:" + Arrays.toString(temp));
        for(int i = 0; i <= toFlip; i++) {
            //System.out.println(toFlip-i-1);
            array[toFlip-i] = temp[i];
        }
    }
}