CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:peltola
Submission time:2016-10-16 22:04:20 +0300
Language:Java
Status:READY
Result:56
Feedback
groupverdictscore
#1ACCEPTED19
#2ACCEPTED37
#30
Test results
testverdicttimegroup
#1ACCEPTED0.14 s1details
#2ACCEPTED0.25 s2details
#3--3details

Code

import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.HashMap;
import java.util.Scanner;
//import java.util.TreeSet;
//import java.util.TreeMap;

public class Teht4 {

    public static void main(String[] args) {

        Scanner l = new Scanner(System.in);
        int n = l.nextInt();
//        String[] t = l.nextLine().split(" ");
        StringBuilder op = new StringBuilder();
        int[] x = new int[n];
//        int h = 0;
        
//        int[] z = new int[n];
        
//        TreeSet<Integer> b = new TreeSet<>();
        ArrayList<Integer> a = new ArrayList<>();
//        HashMap<Integer, Integer> c = new HashMap<Integer, Integer>();
//        TreeMap<Integer, Integer> c = new TreeMap<>();

        for (int i = 0; i < n; i++) {
//            int o = Integer.parseInt(t[i]);
            Integer o = l.nextInt();
            a.add(o);
            x[o - 1] = i;
        }

        for (int i = n; i > 1; i--) {
            
            for (int j = x[i - 1]; j >= 0; j--) {
                
                j = Math.min(j, a.size() - 1);
                
//                if (j >= a.size()) {
//                    j = a.size() - 1;
//                }
                
                if (a.get(j) == i && j != (i - 1)) {
                    
                    if(j + 1 > 1) op.append(j + 1).append(" ");
                    
                    if (i > 1) op.append(i).append(" ");
                    
                    if(i - 1 > 1) op.append(i - 1).append(" ");
                    
                    if(j > 1) op.append(j).append(" ");
                    
                    a.remove(j);
                    
                }
                
            }
            
        }

        System.out.println(op.toString().split(" ").length);
        System.out.println(op);

    }
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
10
9 3 4 7 6 5 10 2 8 1

correct output
32
10 10 9 10 9 8 7 9 4 2 1 4 5 2...

user output
28
7 10 9 6 9 8 7 8 7 6 3 7 6 2 3...

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
650 716 982 41 133 1000 876 92...

correct output
3984
207 207 206 207 128 127 126 12...

user output
3967
6 1000 999 5 96 999 998 95 130...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
(empty)