CSES - Datatähti 2020 alku - Results
Submission details
Task:Ruudukko
Sender:Epe
Submission time:2019-10-04 19:20:49 +0300
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#50.05 sdetails
#60.05 sdetails

Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    int table[n][n] = {0};
    table[0][0] = 1;
    vector<set<int>> columns(n);
    vector<set<int>> rows(n);

    /*
    set<int> full;
    for(int i = 1; i <= n; i++){
        full.insert(i);
    }*/
    /*
    set<int> dummy;
    columns.push_back(dummy);
    rows.push_back(dummy);*/


    for(int x = 0; x < n; x++){
        table[0][x] = x+1;
        set<int> temp;
        temp.insert(x+1);
        columns[x] = temp;

        //cout << "add x " << (x+1) << endl;
    }
    for(int y = 0; y < n; y++){
        table[y][0] = y+1;
        set<int> temp;
        temp.insert(y+1);
        rows[y] = temp;
      //  cout << "add y " << (y+1) << endl;
    }
    /*
    cout << "columns: " << endl;
    for(set<int> setti : columns){
        cout << "start" << endl;
        for(int i : setti){
            cout << i << endl;
        }
        cout << "end" << endl;
    }

    cout << "rows: " << endl;
    for(set<int> setti : rows){
        cout << "start" << endl;
        for(int i : setti){
            cout << i << endl;
        }
        cout << "end" << endl;
    }
    */
    for(int l = 1; l < n; l++){

        for(int x = l; x < n; x++){
            set<int> col = columns[x];
            set<int> row = rows[l];
            for(int i = 1; i <= 100; i++){
                if(col.find(i) == col.end() && row.find(i) == row.end()){

                    rows[l].insert(i);
                    columns[x].insert(i);
                    table[l][x] = i;
                    break;
                }
            }
        }

        for(int y = l+1; y < n; y++){
            set<int> col = columns[l];
            set<int> row = rows[y];
            for(int i = 1; i <= 100; i++){
                if(col.find(i) == col.end() && row.find(i) == row.end()){
                    rows[y].insert(i);
                    columns[l].insert(i);
                    table[y][l] = i;
                    break;
                }
            }
        }

    }
/*
    cout << "columns: " << endl;
    for(set<int> setti : columns){
        cout << "start" << endl;
        for(int i : setti){
            cout << i << endl;
        }
        cout << "end" << endl;
    }

    cout << "rows: " << endl;
    for(set<int> setti : rows){
        cout << "start" << endl;
        for(int i : setti){
            cout << i << endl;
        }
        cout << "end" << endl;
    }
*/

    for(int y = 0; y < n; y++){
        for(int x = 0; x < n; x++){
            cout << table[y][x] << " ";
        }
        cout << endl;
    }
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output

user output

Test 2

Verdict: ACCEPTED

input
2

correct output
1 2 
2 1 

user output
1 2 
2 1 

Test 3

Verdict: ACCEPTED

input
5

correct output
1 2 3 4 5 
2 1 4 3 6 
3 4 1 2 7 
4 3 2 1 8 
5 6 7 8 1 

user output
1 2 3 4 5 
2 1 4 3 6 
3 4 1 2 7 
4 3 2 1 8 
5 6 7 8 1 

Test 4

Verdict: ACCEPTED

input
42

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

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

Test 5

Verdict:

input
99

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

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

Test 6

Verdict:

input
100

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

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