# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
961691 | tudor_costin | Topovi (COCI15_topovi) | C++11 | 1230 ms | 39668 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 ll long long
using namespace std;
map<int,int> xor_col,xor_lin;
map<int,int> cnt_col,cnt_lin;
map<pair<int,int>,int> rooks;
void update(int l,int c,ll& sol,int n)
{
sol=sol-n+cnt_col[xor_lin[l]];
sol=sol-n+cnt_lin[xor_col[c]];
if(xor_lin[l]^xor_col[c]) sol++;
cnt_lin[xor_lin[l]]--;
xor_lin[l]^=rooks[{l,c}];
cnt_lin[xor_lin[l]]++;
cnt_col[xor_col[c]]--;
xor_col[c]^=rooks[{l,c}];
cnt_col[xor_col[c]]++;
sol=sol+n-cnt_col[xor_lin[l]];
sol=sol+n-cnt_lin[xor_col[c]];
if(xor_lin[l]^xor_col[c]) sol--;
return;
}
signed main()
{
int n,k,p;
cin>>n>>k>>p;
cnt_col[0]=n;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |