Code Submission Evaluation System Login

Datatähti 2015 loppu

Start:2015-01-29 12:15:00
End:2015-01-29 17:15:00
 

Tasks | Scoreboard | Statistics


CSES - Datatähti 2015 loppu - Results
History
2015-01-29 15:58:5145
2015-01-29 15:47:4212
2015-01-29 15:25:5212
2015-01-29 15:18:2112
2015-01-29 14:58:310
2015-01-29 13:25:110
2015-01-29 13:06:330
2015-01-29 13:04:490
2015-01-29 12:51:160
2015-01-29 12:49:220
Task:Urkupillit
Sender:MusserO
Submission time:2015-01-29 15:58:51
Language:Java
Status:READY
Score:45

Feedback

groupverdictscore
#1ACCEPTED12
#2ACCEPTED33
#3TIME LIMIT EXCEEDED0

Test results

testverdicttime (s)group
#1ACCEPTED0.05 / 2.001details
#2ACCEPTED0.03 / 2.001details
#3ACCEPTED0.04 / 2.001details
#4ACCEPTED0.04 / 2.001details
#5ACCEPTED0.03 / 2.001details
#6ACCEPTED0.04 / 2.002details
#7ACCEPTED0.04 / 2.002details
#8ACCEPTED0.06 / 2.002details
#9ACCEPTED0.05 / 2.002details
#10ACCEPTED0.04 / 2.002details
#11TIME LIMIT EXCEEDED-- / 2.003details
#12RUNTIME ERROR0.04 / 2.003details
#13RUNTIME ERROR0.05 / 2.003details
#14RUNTIME ERROR0.20 / 2.003details
#15TIME LIMIT EXCEEDED-- / 2.003details

Code

import java.io.*;
import java.util.*;

public class Urkupillit {
	public static void main(String[] args) {
		IO io = new IO();
		int n = io.nextInt();
		int k = io.nextInt();
		int j = 1;
		int m = 0;
		String v = "";
		String w = "";
		ArrayList<Integer> l = new ArrayList<Integer>();	
		for (int i = 1; i <= n; ++i){
			if ((n-i)*(n-i-1)/2 > k){
				v += i+ " ";
				++j;	
			} else {
				l.add(i);	
			}
		}
		if (k!=1){
			for (int i = n; i >= j; --i){
				if (m+i-j <= k && i != j){
					v += i+" ";
					l.remove(l.indexOf(i));
					m += i-j;			
				} else if (m == k) {
					break;
				} else {
					
					if (j+n-i > i){
						--n;
					} else {
						l.remove(l.indexOf(j+n-i));
						v += j+i+" ";	
						m += n-i;				
					}
				}
			}
			
		}
		for (int i : l){
			if (k == 1 && i+1 == n && l.get(l.indexOf(i)+1) == n){
				v += i+1+" "+i;
				break;
			}
			v += i+" ";
		}
		/*if (k-m < j-1){
			boolean br = false;
			for (int i = 0; i < l.size(); ++i){
				if (br){
					br =false;
					continue;
				}
				if (i % 2 == 0 && m < k){
					v += l.get(i+1) + " ";
					v += l.get(i) + " ";
					++m;
					br = true;
				} else {
					v+= l.get(i)+" ";
				}
			}
		} else {

		}*/
		io.println(v);
		io.close();
	}

}


class IO extends PrintWriter {
	private InputStreamReader r;
	private static final int BUFSIZE = 1 << 15;
	private char[] buf;
	private int bufc;
	private int bufi;
	private StringBuilder sb;
	
	public IO() {
		super(new BufferedOutputStream(System.out));
		r = new InputStreamReader(System.in);
		
		buf = new char[BUFSIZE];
		bufc = 0;
		bufi = 0;
		sb = new StringBuilder();
	}
	
	private void fillBuf() throws IOException {
		bufi = 0;
		bufc = 0;
		while(bufc == 0) {
			bufc = r.read(buf, 0, BUFSIZE);
			if(bufc == -1) {
				bufc = 0;
				return;
			}
		}
	}
	
	private boolean pumpBuf() throws IOException {
		if(bufi == bufc) {
			fillBuf();
		}
		return bufc != 0;
	}
	
	private boolean isDelimiter(char c) {
		return c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f';
	}
	
	private void eatDelimiters() throws IOException {
		while(true) {
			if(bufi == bufc) {
				fillBuf();
				if(bufc == 0) throw new RuntimeException("IO: Out of input.");
			}
			
			if(!isDelimiter(buf[bufi])) break;
			++bufi;
		}
	}
	
	public String next() {
		try {
			sb.setLength(0);
			
			eatDelimiters();
			int start = bufi;
			
			while(true) {
				if(bufi == bufc) {
					sb.append(buf, start, bufi - start);
					fillBuf();
					start = 0;
					if(bufc == 0) break;
				}
				
				if(isDelimiter(buf[bufi])) break;
				++bufi;
			}
			
			sb.append(buf, start, bufi - start);
			
			return sb.toString();
		} catch(IOException e) {
			throw new RuntimeException("IO.next: Caught IOException.");
		}
	}
	
	public int nextInt() {
		try {
			int ret = 0;
			
			eatDelimiters();
			
			boolean positive = true;
			if(buf[bufi] == '-') {
				++bufi;
				if(!pumpBuf()) throw new RuntimeException("IO.nextInt: Invalid int.");
				positive = false;
			}
			
			boolean first = true;
			while(true) {
				if(!pumpBuf()) break;
				if(isDelimiter(buf[bufi])) {
					if(first) throw new RuntimeException("IO.nextInt: Invalid int.");
					break;
				}
				first = false;
				
				if(buf[bufi] >= '0' && buf[bufi] <= '9') {
					if(ret < -214748364) throw new RuntimeException("IO.nextInt: Invalid int.");
					ret *= 10;
					ret -= (int)(buf[bufi] - '0');
					if(ret > 0) throw new RuntimeException("IO.nextInt: Invalid int.");
				} else {
					throw new RuntimeException("IO.nextInt: Invalid int.");
				}
				
				++bufi;
			}
			
			if(positive) {
				if(ret == -2147483648) throw new RuntimeException("IO.nextInt: Invalid int.");
				ret = -ret;
			}
			
			return ret;
		} catch(IOException e) {
			throw new RuntimeException("IO.nextInt: Caught IOException.");
		}
	}
	
	public long nextLong() {
		try {
			long ret = 0;
			
			eatDelimiters();
			
			boolean positive = true;
			if(buf[bufi] == '-') {
				++bufi;
				if(!pumpBuf()) throw new RuntimeException("IO.nextLong: Invalid long.");
				positive = false;
			}
			
			boolean first = true;
			while(true) {
				if(!pumpBuf()) break;
				if(isDelimiter(buf[bufi])) {
					if(first) throw new RuntimeException("IO.nextLong: Invalid long.");
					break;
				}
				first = false;
				
				if(buf[bufi] >= '0' && buf[bufi] <= '9') {
					if(ret < -922337203685477580L) throw new RuntimeException("IO.nextLong: Invalid long.");
					ret *= 10;
					ret -= (long)(buf[bufi] - '0');
					if(ret > 0) throw new RuntimeException("IO.nextLong: Invalid long.");
				} else {
					throw new RuntimeException("IO.nextLong: Invalid long.");
				}
				
				++bufi;
			}
			
			if(positive) {
				if(ret == -9223372036854775808L) throw new RuntimeException("IO.nextLong: Invalid long.");
				ret = -ret;
			}
			
			return ret;
		} catch(IOException e) {
			throw new RuntimeException("IO.nextLong: Caught IOException.");
		}
	}
	
	public double nextDouble() {
		return Double.parseDouble(next());
	}
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5 0

view   save

correct output
1 2 3 4 5 

view   save

user output
1 2 3 4 5 

view   save

Test 2

Group: 1

Verdict: ACCEPTED

input
5 10

view   save

correct output
5 4 3 2 1 

view   save

user output
5 4 3 2 1 

view   save

Test 3

Group: 1

Verdict: ACCEPTED

input
5 3

view   save

correct output
4 1 2 3 5 

view   save

user output
1 5 2 3 4 

view   save

Test 4

Group: 1

Verdict: ACCEPTED

input
5 1

view   save

correct output
2 1 3 4 5 

view   save

user output
1 2 3 5 4

view   save

Test 5

Group: 1

Verdict: ACCEPTED

input
5 2

view   save

correct output
3 1 2 4 5 

view   save

user output
1 2 5 3 4 

view   save

Test 6

Group: 2

Verdict: ACCEPTED

input
100 0

view   save

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

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

Test 7

Group: 2

Verdict: ACCEPTED

input
100 4950

view   save

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

user output
100 99 98 97 96 95 94 93 92 91...
view   save

Test 8

Group: 2

Verdict: ACCEPTED

input
100 2279

view   save

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

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

Test 9

Group: 2

Verdict: ACCEPTED

input
100 2528

view   save

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

user output
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
view   save

Test 10

Group: 2

Verdict: ACCEPTED

input
100 4483

view   save

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

user output
1 2 3 4 100 99 98 97 96 95 94 ...
view   save

Test 11

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
100000 0

view   save

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

user output
(empty)

Test 12

Group: 3

Verdict: RUNTIME ERROR

input
100000 4999950000

view   save

correct output
100000 99999 99998 99997 99996...
view   save

user output
(empty)

Error:
Exception in thread "main" java.lang.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(Urkupillit.java:179)
	at Urkupillit.main(Urkupillit.java:8)

Test 13

Group: 3

Verdict: RUNTIME ERROR

input
100000 2969035543

view   save

correct output
100000 99999 99998 99997 99996...
view   save

user output
(empty)

Error:
Exception in thread "main" java.lang.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(Urkupillit.java:179)
	at Urkupillit.main(Urkupillit.java:8)

Test 14

Group: 3

Verdict: RUNTIME ERROR

input
100000 2495939870

view   save

correct output
100000 99999 99998 99997 99996...
view   save

user output
(empty)

Error:
Exception in thread "main" java.lang.RuntimeException: IO.nextInt: Invalid int.
	at IO.nextInt(Urkupillit.java:179)
	at Urkupillit.main(Urkupillit.java:8)

Test 15

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
100000 1279770330

view   save

correct output
100000 99999 99998 99997 99996...
view   save

user output
(empty)