#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();
}
Compilation message
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]);
| ~~~~~^~~~~~~~~~~~~~