rt
#include<bits/stdc++.h>
using namespace std;
const int N=3e4+34;
int f[N],d[N],T,siz[N];
char k;
char read_char(){
char ch=getchar();
while(ch!='C'&&ch!='M')
ch=getchar();
return ch;
}
int find(int x){
if(x==f[x])
return x;
int res=find(f[x]);
d[x]+=d[f[x]];
return f[x]=res;
}
int main(){
scanf("%d",&T);
for(int i=1;i<=N;i++)
f[i]=i,siz[i]=1;
int i,j;
while(T--){
k=read_char();
scanf("%d%d",&i,&j);
if(k=='M'){
i=find(i),j=find(j);
if(i!=j)
f[i]=j,d[i]=siz[j],siz[j]+=siz[i],siz[i]=0;
}
else{
if(find(i)!=find(j)){
puts("-1");
continue;
}
printf("%d\n",i==j?0:abs(d[i]-d[j])-1);
}
}
return 0;
}
一直是too short on line 1,输入换了好几次了,不管是cin还是读入函数都不行,也试过题解里的读入,也不行