| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 98622 | tieunhi | Topovi (COCI15_topovi) | C++14 | 1825 ms | 34808 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define FOR(i, u, v) for (int i = u; i <= v; i++)
#define FORD(i, v, u) for (int i = v; i >= u; i--)
#define pii pair<int, int>
#define mp make_pair
#define F first
#define S second
#define PB push_back
#define N 100005
#define mod 1000000007
#define ll long long
using namespace std;
map<int, int> row, col, cntR, cntC;
map<pii, int> dd;
ll res;
int sz, n, numQ;
void update(int u, int v, int sign)
{
    res += sign*cntC[row[u]];
    res += sign*cntR[col[v]];
    if (row[u] == col[v]) res -= sign;
}
void upd(int u, int v, int w)
{
    update(u, v, -1);
    cntR[row[u]]--;
    cntC[col[v]]--;
    row[u] ^= w; col[v] ^= w;
    cntR[row[u]]++;
    cntC[col[v]]++;
    update(u, v, 1);
}
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    //freopen("INP.TXT", "r", stdin);
    cin >> sz >> n >> numQ;
    res = 1ll*sz*sz;
    cntR[0] = cntC[0] = sz;
    FOR(i, 1, n)
    {
        int u, v, w; cin >> u >> v >> w;
        upd(u, v, w);
        dd[mp(u, v)] = w;
    }
    //cout <<res<<'\n';
    while (numQ--)
    {
        int u, v, x, y; cin >> u >> v >> x >> y;
        int w = dd[mp(u, v)]; dd[mp(u, v)] = 0; dd[mp(x, y)] = w;
        upd(u, v, w);
        upd(x, y, w);
        cout <<1ll*sz*sz -res<<'\n';
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
