Submission #393776

#TimeUsernameProblemLanguageResultExecution timeMemory
393776sadPaint (COI20_paint)C++14
0 / 100
83 ms17340 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define fi first #define se second using namespace std; int n,m; const int N=400006; vector<short int>v[N]; short int pa[N],co[N]; int go (int x,int y) { int re=x-1; re*=m; re+=y;return re; } int get (int x) { if(pa[x]==x)return x; return pa[x]=get(pa[x]); } void merge(int x,int y) { x=get(x); y=get(y); if(x==y)return; if(v[x].size()<v[y].size())swap(x,y); for(auto it:v[y]) { int o=get(it); if(o==x)continue; v[x].pb(o); } //v[y].clear(); pa[y]=x; } int main() { ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>m; int r=0; for(int i=1;i<=n;i++) { for(int j=1;j<m+1;j++) { int x=go(i,j); cin>>co[x]; pa[x]=x; int u=x,uu=go(i-1,j),uuu=go(i,j-1); if(i>1) { if(co[u]==co[uu]) { merge(u,uu); } else {v[u].pb(uu); v[uu].pb(u);} } if(j>1) { if(co[u]==co[uuu]) { merge(u,uuu); } else {v[u].pb(uuu); v[uuu].pb(u);} } } } int q;cin>>q; while(q--) { int x,y,c; cin>>x>>y>>c; int u=go(x,y); if(c==co[u])continue; co[u]=1-co[u]; int w=get(u); for(auto it:v[u]) { w=get(u); int t=get(it); if(t==w)continue; merge(t,w); } } for(int i=1;i<n+1;i++) { for(int j=1;j<m+1;j++)cout<<co[get(go(i,j))]<<" "; cout<<endl; } }

Compilation message (stderr)

paint.cpp: In function 'int main()':
paint.cpp:41:9: warning: unused variable 'r' [-Wunused-variable]
   41 |     int r=0;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...