求看一下哪里有错误样例对了
#include<bits/stdc++.h>
using namespace std;
int n,m,k,q[1000005],x,y,f[1000005],ans;
int find(int x)
{
int root=x;
while(q[root]!=root)
{
q[root]=find(q[root]);
root=q[root];
}
while(root!=x)
{
int next=q[x];
q[x]=root;
x=next;
}
return root;
}
int main()
{
cin>>n>>m;
cin>>k;
for(int i=1;i<=n*m;i++)
{
q[i]=i;
}
for(int i=1;i<=k;i++)
{
cin>>x>>y;
if(find(x)==find(y)) continue;
q[find(x)]=find(y);
}
for(int i=1;i<=n*m;i++)
{
f[q[i]]++;
}
for(int i=1;i<=n*m;i++)
{
if(f[i]>=2) ans++;
}
cout<<ans;
return 0;
}