un函数为啥合并不起来?
#include<bits/stdc++.h>
using namespace std;
int f[30010],T,a,b;
char c;
int find(int x)
{
if(f[x]=x) return x;
return f[x]=find(x);
}
void un(int a,int b)
{
int fa=find(a),fb=find(b);
cout<<f[fa];
if(fa!=fb) f[fa]=fb;
cout<<f[fa];
}
void pd(int a,int b)
{
if(find(a)!=find(b)) cout<<"-1 \n";
else cout<<"1 \n";
}
int main()
{
cin>>T;
for(int i=1;i<=30000;i++)
f[i]=i;
for(int i=1;i<=T;i++)
{
cin>>c>>a>>b;
if(c=='M') un(a,b);
else pd(a,b);
}
for(int i=1;i<=4;i++)
cout<<f[i]<<" ";
return 0;
}