CSES - KILO 2016 2/5 - Results
Submission details
Task:Trade
Sender:PILIPOJAT!!
Submission time:2016-09-13 18:03:37 +0300
Language:Java
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.09 sdetails
#2ACCEPTED0.10 sdetails
#3ACCEPTED0.09 sdetails
#4ACCEPTED0.10 sdetails
#5ACCEPTED0.10 sdetails
#6ACCEPTED0.10 sdetails
#7ACCEPTED0.10 sdetails
#8ACCEPTED0.10 sdetails
#9ACCEPTED0.09 sdetails
#10ACCEPTED0.10 sdetails
#11ACCEPTED0.17 sdetails
#12ACCEPTED0.14 sdetails
#13ACCEPTED0.13 sdetails
#14ACCEPTED0.11 sdetails
#15ACCEPTED0.12 sdetails
#16ACCEPTED0.15 sdetails
#17ACCEPTED0.12 sdetails
#18ACCEPTED0.14 sdetails
#19ACCEPTED0.12 sdetails
#20ACCEPTED0.13 sdetails
#21ACCEPTED0.18 sdetails
#22ACCEPTED0.17 sdetails
#23ACCEPTED0.11 sdetails
#24ACCEPTED0.14 sdetails
#25ACCEPTED0.16 sdetails
#26ACCEPTED0.12 sdetails
#27ACCEPTED0.17 sdetails
#28ACCEPTED0.14 sdetails
#29ACCEPTED0.15 sdetails
#30ACCEPTED0.14 sdetails

Code

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        IO io = new IO();
        int n = io.nextInt();
        
        int cities[][] = new int[n][n];
        int tradeAgreements[] = new int[n];
        int tradet=0;
        for(int i=0; i<n; i++) {
            tradeAgreements[i] = io.nextInt();
            tradet += tradeAgreements[i];
        }
        
        //hc koodi alkaa just täst
        int isoimmatKaupungit[];
        for(int i=0; i<tradet/2; i++) {
            isoimmatKaupungit = find2cities(tradeAgreements);
            if(isoimmatKaupungit[0] != -1) {
                tradeAgreements[isoimmatKaupungit[0]]--;
                tradeAgreements[isoimmatKaupungit[1]]--;
                cities[isoimmatKaupungit[0]][isoimmatKaupungit[1]]++;
                cities[isoimmatKaupungit[1]][isoimmatKaupungit[0]]++;
            }
        }
        
        for(int i=0; i<tradeAgreements.length; i++) {
            if(tradeAgreements[i] > 0) {
                System.out.println("QAQ");
                return;
            }
        }
        
        //hc koodi loppuu tähän
        for(int y=0; y<n; y++) {
            for(int x=0; x<n; x++) {
                System.out.print(cities[y][x] + (x == n - 1 ? "" : " "));
            }
            System.out.println();
        }
        
    }
    
    public static int[] find2cities(int[] taul) {
        int a=0;
        int b=0;
        int x=0, y=0;
        for(int i=0; i<taul.length; i++) {
            if(a < taul[i]) {
                if(b<a) {
                    b=a;
                    y=x;
                }
                a = taul[i];
                x=i;
            } else if(b < taul[i]) {
                b = taul[i];
                y=i;
            }
        }
        //4System.out.println("x=" + x + ", y=" + y);
        if(a==0 || b==0) return new int[]{-1, -1};
        return new int[]{x, y};
    }
    
    
    
    
    
    
    
    
    
    
    
    
      public static 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

Verdict: ACCEPTED

input
2
78 16

correct output
QAQ

user output
QAQ

Test 2

Verdict: ACCEPTED

input
2
87 93

correct output
QAQ

user output
QAQ

Test 3

Verdict: ACCEPTED

input
2
63 29

correct output
QAQ

user output
QAQ

Test 4

Verdict: ACCEPTED

input
2
64 28

correct output
QAQ

user output
QAQ

Test 5

Verdict: ACCEPTED

input
1
74

correct output
QAQ

user output
QAQ

Test 6

Verdict: ACCEPTED

input
3
69 68 31

correct output
0 53 16 
53 0 15 
16 15 0 

user output
0 53 16
53 0 15
16 15 0

Test 7

Verdict: ACCEPTED

input
3
63 24 69

correct output
0 9 54 
9 0 15 
54 15 0 

user output
0 9 54
9 0 15
54 15 0

Test 8

Verdict: ACCEPTED

input
3
3 23 60

correct output
QAQ

user output
QAQ

Test 9

Verdict: ACCEPTED

input
1
94

correct output
QAQ

user output
QAQ

Test 10

Verdict: ACCEPTED

input
2
43 30

correct output
QAQ

user output
QAQ

Test 11

Verdict: ACCEPTED

input
74
22 20 85 38 99 25 16 71 14 27 ...

correct output
0 9 2 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 9 13 0 0 0 0 0 0 0 0 0 0 0 0...

Test 12

Verdict: ACCEPTED

input
66
90 45 20 41 30 32 18 98 72 82 ...

correct output
0 20 0 0 0 0 0 16 0 0 0 0 0 0 ...

user output
0 20 11 13 0 0 0 16 18 7 0 0 0...

Test 13

Verdict: ACCEPTED

input
29
76 8 75 22 59 96 30 38 36 94 1...

correct output
0 4 24 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 3 29 8 22 14 0 0 0 0 0 0 0 0...

Test 14

Verdict: ACCEPTED

input
18
18 97 25 44 71 84 91 100 73 26...

correct output
0 12 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 12 6 0 0 0 0 0 0 0 0 0 0 0 0...

Test 15

Verdict: ACCEPTED

input
43
65 98 8 56 5 49 12 23 29 100 4...

correct output
0 28 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 27 3 31 0 0 0 0 0 4 0 0 0 0 ...

Test 16

Verdict: ACCEPTED

input
69
72 74 32 82 31 34 95 61 64 100...

correct output
0 37 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 37 13 22 0 0 0 0 0 0 0 0 0 0...

Test 17

Verdict: ACCEPTED

input
31
85 93 73 73 51 26 86 23 100 41...

correct output
0 33 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 33 47 0 0 0 5 0 0 0 0 0 0 0 ...

Test 18

Verdict: ACCEPTED

input
61
43 80 85 94 6 22 68 5 14 62 55...

correct output
0 14 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 13 30 0 0 0 0 0 0 0 0 0 0 0 ...

Test 19

Verdict: ACCEPTED

input
37
61 15 22 61 5 29 28 51 49 57 3...

correct output
0 6 4 25 0 0 0 0 0 0 0 0 0 0 0...

user output
0 6 13 28 0 0 0 8 0 3 0 3 0 0 ...

Test 20

Verdict: ACCEPTED

input
44
36 78 1 39 72 50 90 68 89 93 9...

correct output
0 17 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 17 0 19 0 0 0 0 0 0 0 0 0 0 ...

Test 21

Verdict: ACCEPTED

input
87
1 47 27 95 17 53 79 30 47 91 4...

correct output
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ...

Test 22

Verdict: ACCEPTED

input
63
83 91 93 92 58 16 22 58 75 92 ...

correct output
0 48 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 48 35 0 0 0 0 0 0 0 0 0 0 0 ...

Test 23

Verdict: ACCEPTED

input
15
90 69 94 19 6 83 23 83 18 31 9...

correct output
0 37 8 0 0 0 0 0 0 0 0 0 0 0 4...

user output
0 36 42 0 0 10 0 0 0 0 2 0 0 0...

Test 24

Verdict: ACCEPTED

input
54
44 75 15 14 80 78 63 76 89 20 ...

correct output
0 23 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 22 6 0 16 0 0 0 0 0 0 0 0 0 ...

Test 25

Verdict: ACCEPTED

input
64
78 97 82 66 61 37 56 71 19 12 ...

correct output
0 32 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 32 46 0 0 0 0 0 0 0 0 0 0 0 ...

Test 26

Verdict: ACCEPTED

input
19
2 4 54 34 8 60 29 7 98 21 85 9...

correct output
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 ...

Test 27

Verdict: ACCEPTED

input
72
90 60 7 11 17 25 10 40 1 79 10...

correct output
0 33 0 0 0 0 0 0 0 12 0 0 2 0 ...

user output
0 33 4 2 3 5 0 8 0 16 0 0 11 0...

Test 28

Verdict: ACCEPTED

input
64
61 83 12 86 87 86 31 91 84 15 ...

correct output
0 32 0 0 0 0 0 0 0 0 0 0 0 0 0...

user output
0 31 1 29 0 0 0 0 0 0 0 0 0 0 ...

Test 29

Verdict: ACCEPTED

input
67
53 18 42 36 69 99 85 96 77 6 6...

correct output
0 9 9 0 8 0 0 0 0 0 0 0 0 0 0 ...

user output
0 8 20 13 8 4 0 0 0 0 0 0 0 0 ...

Test 30

Verdict: ACCEPTED

input
57
91 42 71 53 66 12 70 18 62 84 ...

correct output
0 18 11 0 0 0 0 0 0 5 0 0 0 0 ...

user output
0 18 35 7 8 0 3 0 0 4 0 0 0 0 ...