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

Code


#include <vector>
#include <utility>
#include <algorithm>
#include <iostream>
using namespace std;


int main() {
    int n; cin >> n;
    vector<int> v;
    int sum = 0;
    for(int i = 0; i < n; i++){
        int x; cin >> x;
        v.push_back(x);
        sum += x;
    }
    
    if(sum % 2 != 0){
        cout << "QAQ" << endl;
        return 0;
    }
    
    vector<vector<int> > ans(n, vector<int>(n));
    for(int iter = 0; iter < sum / 2; iter++){
        int min_index = 0;
        int max_index = 0;
        int min_value = 1e9;
        int max_value = -1;
        for(int i = 0; i < n; i++){
            if(v[i] > 0 && v[i] < min_value){
                min_value = v[i];
                min_index = i;
            }
        }
        for(int i = n-1; i >= 0; i--){
            if(v[i] > max_value){
                max_value = v[i];
                max_index = i;
            }
        }
                
        //cout << min_index << " " << max_index << endl;
        if(min_index == max_index){
            cout << "QAQ" << endl;
            return 0;
        }
        
        v[min_index]--;
        v[max_index]--;
        ans[min_index][max_index]++;
        ans[max_index][min_index]++;
    }
    
    for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
            cout << ans[i][j] << " ";
        }
        cout << "\n";
    }
        
    
}

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 0 2 0 2 0 0 0 0 0 1 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 1 2 2 1 1 2 1 2 1 2 0 2 1 2 ...

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 0 3 3 4 3 3 4 4 3 3 4 4 0 4 ...

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 7 0 0 0 0 2 6 0 0 0 3 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 2 0 3 0 3 0 0 2 2 3 3 2 2 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 2 1 1 1 1 2 1 2 2 1 2 1 2 1 ...

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 3 3 4 4 3 3 0 3 3 2 4 0 4 4 ...

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 2 2 2 0 0 2 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 0 0 2 0 0 0 2 2 2 0 2 2 3 3 ...

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 2 0 0 2 0 2 2 2 2 2 0 0 0 2 ...

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 0 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 1 1 1 1 0 2 1 1 1 2 1 2 1 2 ...

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 9 9 4 0 9 4 10 2 4 9 9 3 9 9...

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 2 0 0 2 2 2 2 2 0 0 0 2 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 1 2 2 1 1 2 2 0 0 2 2 1 2 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 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 1 1 0 2 0 2 0 2 2 1 1 ...

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 1 0 1 1 1 0 1 1 0 1 0 0 1 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 0 0 0 1 1 1 1 1 0 1 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 1 1 1 1 2 1 2 2 1 2 2 0 1 1 ...