Submission #961812

#TimeUsernameProblemLanguageResultExecution timeMemory
961812ASN49KTopovi (COCI15_topovi)C++14
120 / 120
1101 ms33556 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define all(x) x.begin(),x.end() #define LINE 0 #define COLOUMN 1 using i64=long long; map<int,int>value[2],cnt[2]; map<pair<int,int>,int>mpp; int n; i64 cost; void add(int poz,int val,bool tip) { cost-=(n-cnt[tip^1][value[tip][poz]]); cnt[tip][value[tip][poz]]--; value[tip][poz]^=val; cnt[tip][value[tip][poz]]++; cost+=(n-cnt[tip^1][value[tip][poz]]); } void change(int l1,int r1,int l2,int r2) { int vall=mpp[make_pair(l1,r1)]; add(l1,vall,LINE); add(r1,vall,COLOUMN); add(l2,vall,LINE); add(r2,vall,COLOUMN); mpp[make_pair(l2,r2)]=vall; } int main() { int k,q; cin>>n>>k>>q; cnt[LINE][0]=n; cnt[COLOUMN][0]=n; for(int i=0;i<k;i++) { int x,y,k; cin>>x>>y>>k; add(x,k,LINE); add(y,k,COLOUMN); mpp[make_pair(x,y)]=k; } while(q--) { int l1,r1,l2,r2; cin>>l1>>r1>>l2>>r2; change(l1,r1,l2,r2); cout<<cost<<'\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...