#include<iostream>
using namespace std;
int pre[1050];
bool t[1050]; //t 用于标记独立块的根结点
int find(int x) //路径压缩的查找祖先
{
int r=x;
while(r!=pre[r])
r=pre[r];
int i=x,j;
while(pre[i]!=r)
{
j=pre[i];
pre[i]=r;
i=j;
}
return r;
}
void merge(int x,int y) //合并元素x和元素y的集合
{
int fx=find(x),fy=find(y);
if(fx!=fy)
{
pre[fy]=fx;
}
}