大佬来救救wo吧
写的怎么看都没问题
但就是不对,样例过不去
#include<bits/stdc++.h>
using namespace std;
int t;
int fa[30007],size[30007],d[30007];
int get(int x){
if(fa[x]==x)return x;
int a=get(fa[x]);
fa[x]=a;
d[x]+=d[fa[x]];
return a;
}
void merge(int x,int y){
int a=get(x),b=get(y);
fa[a]=b;
d[a]=size[b];
size[b]+=size[a];
}
int main(){
cin>>t;
for(int i=1;i<=30000;i++){
fa[i]=i;
//d[i]=1;
size[i]=1;
}
for(int i=1;i<=t;i++){
char s,xx,yy;
cin>>s>>xx>>yy;
if(s=='M')merge(xx,yy);
if(s=='C'){
//cout<<"kk";
if(get(xx)==get(yy)){
cout<<abs(d[xx]-d[yy])-1<<endl;
}
else cout<<"-1"<<endl;
}
}
return 0;
}