CSES - Datatähti 2015 loppu - Results
Submission details
Task:Urkupillit
Sender:fergusq
Submission time:2015-01-29 15:53:49 +0200
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#20.03 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.09 s1details
#5ACCEPTED0.02 s1details
#6ACCEPTED0.03 s2details
#70.04 s2details
#8ACCEPTED0.03 s2details
#9ACCEPTED0.04 s2details
#100.05 s2details
#11ACCEPTED0.88 s3details
#120.13 s3details
#130.02 s3details
#140.04 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 = io.nextInt();
		
		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 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);
				
				if (k-j <= n-i-b) {
					int yks = urut.remove(b+i+(k-j));
					urut.add(b+i, yks);
					break lbl;
				}
				else {
					b = i;
					k = k-j;
				}
			
			}
		}
		
		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:

input
5 10

correct output
5 4 3 2 1 

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.remove(ArrayList.java:492)
	at Urut.main(Urut.java:61)

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:

input
100 4950

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

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 100, Size: 100
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.remove(ArrayList.java:492)
	at Urut.main(Urut.java:61)

Test 8

Group: 2

Verdict: ACCEPTED

input
100 2279

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

user output
68
67
66
65
64
...

Test 9

Group: 2

Verdict: ACCEPTED

input
100 2528

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

user output
71
70
69
68
67
...

Test 10

Group: 2

Verdict:

input
100 4483

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

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 100, Size: 100
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.remove(ArrayList.java:492)
	at Urut.main(Urut.java:61)

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)

Error:
Exception in thread "main" java.lang.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(IO.java:106)
	at Urut.main(Urut.java:43)

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.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(IO.java:106)
	at Urut.main(Urut.java:43)

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.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(IO.java:106)
	at Urut.main(Urut.java:43)

Test 15

Group: 3

Verdict:

input
100000 1279770330

correct output
100000 99999 99998 99997 99996...

user output
(empty)