CSES - Datatähti 2015 loppu - Results
Submission details
Task:Urkupillit
Sender:fergusq
Submission time:2015-01-29 17:09:40 +0200
Language:Java
Status:READY
Result:45
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED33
#30
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1details
#2ACCEPTED0.03 s1details
#3ACCEPTED0.04 s1details
#4ACCEPTED0.04 s1details
#5ACCEPTED0.05 s1details
#6ACCEPTED0.04 s2details
#7ACCEPTED0.04 s2details
#8ACCEPTED0.04 s2details
#9ACCEPTED0.04 s2details
#10ACCEPTED0.05 s2details
#11ACCEPTED0.76 s3details
#12--3details
#130.11 s3details
#140.11 s3details
#15--3details

Code

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;


public class Urut {

	/*public static void main(String[] args) {
		IO io = new IO();
		
		int n = io.nextInt();
		int k = io.nextInt();
		
		int mitta = k > n ? n/4+n/2 : n;
		
		int montako = k/mitta;
		int plus = k%mitta;
		
		int[] urut = new int[n];
		
		System.err.println(montako + " " + plus + " (" + mitta + ") ");
		
		int skip = 0, j = montako+1;
		for (int i = n; i > 0; i--) {
			System.err.print(i);
			if ((i>=mitta+2&&i<=mitta+1+montako)||i==plus+1) {
				skip++;
				urut[i-1] = j--;
			}
			else urut[i-1] = i+skip;
			System.err.println(" " + urut[i-1] + " (" + skip + ")");
		}
		
		for (int i = 0; i < n; i++) io.println(urut[i]);
		
		io.close();
	}*/
	
	public static void main(String[] args) {
		IO io = new IO();
		
		int n = io.nextInt();
		int k = (int)io.nextLong();
		
		List<Integer> urut = new ArrayList<Integer>(n);
		for (int i = 0; i < n; i++) urut.add(i+1);
		
		if (k < n) {
			int yks = urut.remove(0);
			urut.add(k, yks);
		}
		else lbl: {
			
			int yks = urut.remove(0);
			
			int b = 0;
			
			//while (true) {
			
				int i = 2;
				int j = i*(i-1)/2;
				while (j < k) {
					int joku = urut.remove(b+i-1);
					urut.add(b, joku);
					i++; j = i*(i-1)/2;
				}
				
				i--;
				j = i*(i-1)/2;
				
				//System.err.println("k: " + k + " j:" + j + " i:" + i + " b:" + b);
				
				/*if (k-j < n-i-b) {
					int yks = urut.remove(b+i+(k-j));
					urut.add(b+i, yks);
					break lbl;
				}
				else {
					b = b+i;
					k = k-j;
				}*/
			
			//}
			
				urut.add(k-j, yks);
		}
		
		for (int i : urut) io.println(i);
		
		io.close();
	}
	
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5 0

correct output
1 2 3 4 5 

user output
1
2
3
4
5

Test 2

Group: 1

Verdict: ACCEPTED

input
5 10

correct output
5 4 3 2 1 

user output
5
4
3
2
1

Test 3

Group: 1

Verdict: ACCEPTED

input
5 3

correct output
4 1 2 3 5 

user output
2
3
4
1
5

Test 4

Group: 1

Verdict: ACCEPTED

input
5 1

correct output
2 1 3 4 5 

user output
2
1
3
4
5

Test 5

Group: 1

Verdict: ACCEPTED

input
5 2

correct output
3 1 2 4 5 

user output
2
3
1
4
5

Test 6

Group: 2

Verdict: ACCEPTED

input
100 0

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1
2
3
4
5
...

Test 7

Group: 2

Verdict: ACCEPTED

input
100 4950

correct output
100 99 98 97 96 95 94 93 92 91...

user output
100
99
98
97
96
...

Test 8

Group: 2

Verdict: ACCEPTED

input
100 2279

correct output
100 99 98 97 96 95 94 93 92 91...

user output
69
1
68
67
66
...

Test 9

Group: 2

Verdict: ACCEPTED

input
100 2528

correct output
100 99 98 97 96 95 94 93 92 91...

user output
72
71
70
69
68
...

Test 10

Group: 2

Verdict: ACCEPTED

input
100 4483

correct output
100 99 98 97 96 95 94 93 92 91...

user output
96
95
94
93
92
...

Test 11

Group: 3

Verdict: ACCEPTED

input
100000 0

correct output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1
2
3
4
5
...

Test 12

Group: 3

Verdict:

input
100000 4999950000

correct output
100000 99999 99998 99997 99996...

user output
(empty)

Test 13

Group: 3

Verdict:

input
100000 2969035543

correct output
100000 99999 99998 99997 99996...

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: -1325931753, Size: 99999
	at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
	at java.util.ArrayList.add(ArrayList.java:473)
	at Urut.main(Urut.java:50)

Test 14

Group: 3

Verdict:

input
100000 2495939870

correct output
100000 99999 99998 99997 99996...

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: -1799027426, Size: 99999
	at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
	at java.util.ArrayList.add(ArrayList.java:473)
	at Urut.main(Urut.java:50)

Test 15

Group: 3

Verdict:

input
100000 1279770330

correct output
100000 99999 99998 99997 99996...

user output
(empty)