快读快写有问题,也不要和printf混用
统一成一种输入输出方式
```cpp
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000+5
int fa[MAXN];
int find(int x)
{
if(x==fa[x]) return x;
return fa[x]=find(fa[x]);
}
void join(int c1,int c2)
{
fa[find(c1)]=find(c2);
}
int main()
{
while(1){
int ans=0;
memset(fa,0,sizeof(fa));
int n,m;
cin>>n;
if(!n) break;
cin>>m;
for(int i=1;i<=n;i++) fa[i]=i;
while(m--){
int x,y;
cin>>x>>y;
join(x,y);
}
for(int i=1;i<=n;i++){
if(find(i)==i) ans++;
}
ans--;
cout<<ans<<endl;
}
return 0;
}
```
by Pianmu @ 2023-08-18 11:24:53