Submission #956332

# Submission time Handle Problem Language Result Execution time Memory
956332 2024-04-01T16:04:32 Z Ariadna Topovi (COCI15_topovi) C++14
30 / 120
35 ms 65536 KB
#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, k, p;
    cin >> n >> k >> p;
    vector<int> rows(n, 0), columns(n, 0);
    vector<vector<int>> rooks(n, vector<int>(n, 0));
    while (k--) {
        int r, c, x;
        cin >> r >> c >> x;
        --r; --c;
        rows[r] ^= x;
        columns[c] ^= x;
        rooks[r][c] = x;
    }
    int total = 0;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (((rows[i] ^ rooks[i][j]) ^ (columns[j] ^ rooks[i][j])) > 0) ++total;
        }
    }
    while (p--) {
        int r1, c1, r2, c2;
        cin >> r1 >> c1 >> r2 >> c2; 
        --r1; --r2; --c1; --c2;
        for (int i = 0; i < n; ++i) {
            if (i == c1) continue;
            if (((columns[i] ^ rooks[r1][i]) ^ (rows[r1] ^ rooks[r1][i])) > 0 && ((columns[i] ^ rooks[r1][i]) ^ ((rows[r1] ^ rooks[r1][i]) ^ rooks[r1][c1])) == 0) --total;
            else if (((columns[i] ^ rooks[r1][i]) ^ (rows[r1] ^ rooks[r1][i])) == 0 && ((columns[i] ^ rooks[r1][i]) ^ ((rows[r1] ^ rooks[r1][i]) ^ rooks[r1][c1])) > 0) ++total;
        }
        for (int i = 0; i < n; ++i) {
            if (i == r1) continue;
            if (((columns[c1] ^ rooks[i][c1]) ^ (rows[i] ^ rooks[i][c1])) > 0 && (((columns[c1] ^ rooks[i][c1]) ^ rooks[r1][c1]) ^ (rows[i] ^ rooks[i][c1])) == 0) --total;
            else if (((columns[c1] ^ rooks[i][c1]) ^ (rows[i] ^ rooks[i][c1])) == 0 && (((columns[c1] ^ rooks[i][c1]) ^ rooks[r1][c1]) ^ (rows[i] ^ rooks[i][c1])) > 0) ++total;
        }
        rows[r1] ^= rooks[r1][c1];
        columns[c1] ^= rooks[r1][c1];
        rooks[r2][c2] = rooks[r1][c1];
        rooks[r1][c1] = 0;
        for (int i = 0; i < n; ++i) {
            if (i == c2) continue;
            if (((columns[i] ^ rooks[r2][i]) ^ (rows[r2] ^ rooks[r2][i])) == 0 && ((columns[i] ^ rooks[r2][i]) ^ ((rows[r2] ^ rooks[r2][i]) ^ rooks[r2][c2])) > 0) ++total;
            else if (((columns[i] ^ rooks[r2][i]) ^ (rows[r2] ^ rooks[r2][i])) > 0 && ((columns[i] ^ rooks[r2][i]) ^ ((rows[r2] ^ rooks[r2][i]) ^ rooks[r2][c2])) == 0) --total;
        }
        for (int i = 0; i < n; ++i) {
            if (i == r2) continue;
            if (((columns[c2] ^ rooks[i][c2]) ^ (rows[i] ^ rooks[i][c2])) == 0 && ((columns[c2] ^ rooks[i][c2] ^ rooks[r2][c2]) ^ (rows[i] ^ rooks[i][c2])) > 0) ++total;
            else if (((columns[c2] ^ rooks[i][c2]) ^ (rows[i] ^ rooks[i][c2])) > 0 && ((columns[c2] ^ rooks[i][c2] ^ rooks[r2][c2]) ^ (rows[i] ^ rooks[i][c2])) == 0) --total;
        }
        rows[r2] ^= rooks[r2][c2];
        columns[c2] ^= rooks[r2][c2];

        cout << total << '\n';
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 436 KB Output is correct
6 Runtime error 35 ms 65536 KB Execution killed with signal 9
7 Runtime error 27 ms 65536 KB Execution killed with signal 9
8 Runtime error 22 ms 65536 KB Execution killed with signal 9
9 Runtime error 19 ms 65536 KB Execution killed with signal 9
10 Runtime error 20 ms 65536 KB Execution killed with signal 9
11 Runtime error 27 ms 65536 KB Execution killed with signal 9
12 Runtime error 19 ms 65536 KB Execution killed with signal 9
13 Runtime error 15 ms 65536 KB Execution killed with signal 9
14 Runtime error 18 ms 65536 KB Execution killed with signal 9
15 Runtime error 18 ms 65536 KB Execution killed with signal 9
16 Runtime error 19 ms 65536 KB Execution killed with signal 9
17 Runtime error 15 ms 65536 KB Execution killed with signal 9
18 Runtime error 16 ms 65536 KB Execution killed with signal 9
19 Runtime error 15 ms 65536 KB Execution killed with signal 9
20 Runtime error 18 ms 65536 KB Execution killed with signal 9