제출 #887266

#제출 시각아이디문제언어결과실행 시간메모리
887266vjudge1Topovi (COCI15_topovi)C++17
120 / 120
431 ms35580 KiB
#ifndef Local #pragma GCC optimize("O3,unroll-loops") const int lim=1e6+100; #else const int lim=2e3+100; #endif #include "bits/stdc++.h" using namespace std; #define int int64_t #define pb push_back const int mod=1e9+7; using pii=pair<int,int>; int n,k,p; unordered_map<int,int>row,col,countcol,countrow; int ans=0; void insert(int x,int y,int z){ int rowy=row[x],coly=col[y]; ans-=2*n-countcol[rowy]-countrow[coly]-2*(rowy!=coly); countrow[rowy]--; countcol[coly]--; rowy=(row[x]^=z); coly=(col[y]^=z); countrow[rowy]++; countcol[coly]++; ans+=2*n-countcol[rowy]-countrow[coly]-2*(rowy!=coly); } inline void solve(){ cin>>n>>k>>p; unordered_map<int,int>val; countcol[0]=n; countrow[0]=n; for(int i=0;i<k;i++){ int x,y,z; cin>>x>>y>>z; insert(x,y,z); val[x*(1e9+1)+y]=z; } for(int i=0;i<p;i++){ int x1,y1,x2,y2; cin>>x1>>y1>>x2>>y2; insert(x1,y1,val[x1*(1e9+1)+y1]); insert(x2,y2,val[x1*(1e9+1)+y1]); val[x2*(1e9+1)+y2]=val[x1*(1e9+1)+y1]; val[x1*(1e9+1)+y1]=0; cout<<ans<<"\n"; } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); #ifdef Local freopen(".in","r",stdin); freopen(".out","w",stdout); #else //freopen("grass.in","r",stdin); //freopen("grass.out","w",stdout); #endif int t=1; //cin>>t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...