제출 #391975

#제출 시각아이디문제언어결과실행 시간메모리
391975A_DPaint (COI20_paint)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> //#define int long long #define ii pair<int,int> #define F first #define S second #define du long double using namespace std; int n,m; const int N=2e5+10; vector<int> idx[N]; int p[N]; map<int,vector<int>> mp[N]; int a[N]; int x[]={0,0,1,-1}; int y[]={1,-1,0,0}; vector<int> vec; bool out(int i,int j) { //cout<<i<<" "<<j<<endl; bool ans=i<1||j<1||i>n||j>m; return ans; } int find(int u) { if(u==p[u])return u; return p[u]=find(p[u]); } void compine(int u,int v) { u=find(u); v=find(v); if(u==v)return; if(st[u].size()>st[v].size()){ swap(u,v); } for(auto x:st[u]){ st[v].insert(x); } st[v].erase(u); p[u]=v; } void fix() { for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int x=idx[i][j]; x=find(x); x=a[x]; printf("%d ",x); } printf("\n"); } /* cout<<endl; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int x=idx[i][j]; x=find(x); cout<<x<<" "; } cout<<endl; } */ } void solve() { cin>>n>>m; for(int i=1;i<=n;i++){ idx[i].resize(m+10); } int cnt=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cnt++; p[cnt]=cnt; idx[i][j]=cnt; scanf("%d",&a[cnt]); } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ vec.clear(); int u=idx[i][j]; int c=a[u]; u=find(u); for(int k=0;k<4;k++){ int ni=i+x[k]; int nj=j+y[k]; if(out(ni,nj))continue; int v=idx[ni][nj]; v=find(v); int nc=a[v]; if(c==nc){ vec.push_back(v); } else{ mp[u][nc].push_back(v); } } for(auto x:vec){ // cout<<x<<endl; compine(u,x); } } } int q; cin>>q; while(q--){ // cout<<"\n\n"; // fix(); // cout<<"\n\n"; int c,i,j; cin>>i>>j>>c; int u=idx[i][j]; u=find(u); a[u]=c; vec.clear(); for(auto x:mp[u][c]){ vec.push_back(x); } mp[u][c].clear(); // cout<<endl; for(auto x:vec){ compine(u,x); } } fix(); } main() { //freopen(".in","r",stdin);freopen(".out","w",stdout); int t=1; // cin>>t; while(t--)solve(); }

컴파일 시 표준 에러 (stderr) 메시지

paint.cpp: In function 'void compine(int, int)':
paint.cpp:33:8: error: 'st' was not declared in this scope; did you mean 'std'?
   33 |     if(st[u].size()>st[v].size()){
      |        ^~
      |        std
paint.cpp:36:16: error: 'st' was not declared in this scope; did you mean 'std'?
   36 |     for(auto x:st[u]){
      |                ^~
      |                std
paint.cpp:39:5: error: 'st' was not declared in this scope; did you mean 'std'?
   39 |     st[v].erase(u);
      |     ^~
      |     std
paint.cpp: At global scope:
paint.cpp:131:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  131 | main()
      |      ^
paint.cpp: In function 'void solve()':
paint.cpp:76:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   76 |             scanf("%d",&a[cnt]);
      |             ~~~~~^~~~~~~~~~~~~~