CSES - Datatähti 2020 alku - Results
Submission details
Task:Ruudukko
Sender:Epe
Submission time:2019-10-04 18:45:57 +0300
Language:C++11
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:67:18: warning: variable 'found' set but not used [-Wunused-but-set-variable]
             bool found = false;
                  ^~~~~
input/code.cpp:79:22: warning: right operand of comma operator has no effect [-Wunused-value]
         for(y = 1, y < n; y++){
                    ~~^~~
input/code.cpp:79:30: error: expected ';' before ')' token
         for(y = 1, y < n; y++){
                              ^

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.push_back(temp);
    }
    for(int y = 0; y < n; y++){
        table[y][0] = y+1;
        set<int> temp;
        temp.insert(y+1);
        rows.push_back(temp);
    }

    /*
    for(int y = 0; y < n; y++){
        for(int x = 0; x < n-y-1; x++){
            set<int> no = rows[y];
            set<int> col = columns[x];
            no.insert(col.begin(), col.end());



            bool found = false;
            for(int i = 1; i <= n; i++){
                if(no.find(i) == no.end()){
                    found = true;
                    rows[y].insert(i);
                    columns[x].insert(i);
                    table[y][x] = i;
                    break;
                }
            }



        }
    }*/

    for(int i = 1; i < n; i++){
        int y = i,x;
        for(x = 1; x < n; x++){
            set<int> no = rows[x];
            set<int> col = columns[x];
            no.insert(col.begin(), col.end());

            bool found = false;
            for(int i = 1; i <= n; i++){
                if(no.find(i) == no.end()){
                    found = true;
                    rows[y].insert(i);
                    columns[x].insert(i);
                    table[y][x] = i;
                    break;
                }
            }
        }
        x = i;
        for(y = 1, y < n; y++){
            set<int> no = rows[y];
            set<int> col = columns[x];
            no.insert(col.begin(), col.end());

            bool found = false;
            for(int i = 1; i <= n; i++){
                if(no.find(i) == no.end()){
                    found = true;
                    rows[y].insert(i);
                    columns[x].insert(i);
                    table[y][x] = i;
                    break;
                }
            }
        }
    }

    /*
    for(int y = n-1; y > 0; y--){
        for(int x = n-1; x > n-y-1; x--){
            set<int> no = rows[y];
            set<int> col = columns[x];
            no.insert(col.begin(), col.end());



            bool found = false;
            for(int i = 1; i <= n; i++){
                if(no.find(i) == no.end()){
                    found = true;
                    rows[y].insert(i);
                    columns[x].insert(i);
                    table[y][x] = i;
                    break;
                }
            }



        }
    }

    */

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