CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:lumieer
Submission time:2016-10-14 12:33:09 +0300
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.12 s1details
#20.20 s2details
#3--3details

Code

//package jarjestys;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Jarjestys {
public static void main(String[] args) {
final Scanner lukija = new Scanner(System.in);
int taulKoko = Integer.parseInt(lukija.nextLine());
Integer[] taulukko;
taulukko = new Integer[taulKoko];
String luvut = lukija.nextLine();
String luvunSailytys = "";
int kaydytLuvut = 0;
for (int i = 0; i < luvut.length(); i++) {
if (luvut.charAt(i) != ' ') {
luvunSailytys += luvut.charAt(i);
} else {
kaydytLuvut++;
taulukko[kaydytLuvut - 1] = Integer.parseInt(luvunSailytys);
luvunSailytys = "";
}
}
taulukko[kaydytLuvut] = Integer.parseInt(luvunSailytys);
//System.out.println(taulKoko);
//System.out.println(Arrays.toString(taulukko));
int haluttuLuku = taulKoko;
ArrayList <Integer> kaannot = new ArrayList<>();
char temp;
ArrayList <Integer> lista = new ArrayList<Integer>(Arrays.asList(taulukko));
do {
if (lista.indexOf(haluttuLuku) <= taulukko.length - 1) {
//System.out.println("Indeksi " + lista.indexOf(haluttuLuku) + ", haluttu luku " + haluttuLuku);
//Kaannetaan haluttu luku ensimmaiseksi
kaannot.add(lista.indexOf(haluttuLuku) + 1);
//System.out.println("Kaanto " + (lista.indexOf(haluttuLuku) + 1));
lista = vaihdaLuvut(lista, haluttuLuku);
//System.out.println(lista);
//Kaannetaan haluttu luku viimeiseksi
kaannot.add(haluttuLuku);
//System.out.println("Kaanto " + haluttuLuku);
lista = vaihdaPaikka(lista, haluttuLuku - 1);
//System.out.println(lista.toString());
haluttuLuku--;
} else {
haluttuLuku--;
}
} while (haluttuLuku >= 1);
//System.out.println(lista);
System.out.println(kaannot.size());
int laskuri = 0;
for (int kaanto : kaannot) {
laskuri++;
System.out.print(kaanto);
if (laskuri < kaannot.size()) {
System.out.print(" ");
}
}
System.out.println("");
}
public static ArrayList<Integer> vaihdaLuvut(ArrayList<Integer> taulukko, int luku) {
taulukko.set(taulukko.indexOf(luku), taulukko.get(0));
taulukko.set(0, luku);
return taulukko;
}
public static ArrayList<Integer> vaihdaPaikka(ArrayList<Integer> taulukko, int paikka) {
int luku = taulukko.get(paikka);
taulukko.set(paikka, taulukko.get(0));
taulukko.set(0, luku);
return taulukko;
}
}

Test details

Test 1

Group: 1

Verdict:

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
20
7 10 7 9 1 8 4 7 5 6 1 5 3 4 2...

Test 2

Group: 2

Verdict:

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

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

user output
2000
6 1000 97 999 132 998 797 997 ...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
(empty)