1 void init(int n)
 2 {
 3     for(int i=1;i<=n;i++)
 4     {
 5         pre[i]=i;
 6     }
 7 }
 8 int find_pre(int x)
 9 {
10     if(pre[x]==x)return x;
11     return pre[x]=find_pre(pre[x]);
12 }
13 void Union(int i,int j)
14 {
15     i=find_pre(i);
16     j=find_pre(j);
17     if(i==j)return;
18     else
19     {
20         pre[i]=j;
21     }
22 }
23 int is(int i,int j)
24 {
25     return find_pre(i)==find_pre(j);
26 }