const int MAXN=10010;
int father[MAXN];
int N;
//初始化
void init(){
for(int i=1;i<=N;i++){
father[i]=i;
}
}
//查找x所在集合的根节点
int findFather(int x){
if(father[x]==x)return x;
else{
//路径压缩
int F=findFather(father[x]);
father[x]=F;
return F;
}
}
//合并
void Union(int a,int b){
int faA=findFather(a);
int faB=findFather(b);
if(faA!=faB){
father[faA]=faB;
}
}