Submission #961817

#TimeUsernameProblemLanguageResultExecution timeMemory
961817ASN49KTopovi (COCI15_topovi)C++14
120 / 120
798 ms33836 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 calculate(int poz,int tip,int sign) { cnt[tip][value[tip][poz]]+=sign; cost+=sign*(n-cnt[tip^1][value[tip][poz]]); } void add(int poz,int val,bool tip) { calculate(poz,tip,-1); value[tip][poz]^=val; calculate(poz,tip,1); } 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() { ios::sync_with_stdio(false); cin.tie(0); 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...