#include<bits/stdc++.h>
using namespace std;
struct node{
int fat,dis;
}a[20010];
int find(int x){
if(a[x].fat==x)return x;
int t=find(a[x].fat);
a[x].dis+=a[a[x].fat].dis;
a[x].fat=t;
return a[x].fat;
}
int main(){
int i,n,x,y,kase;
char c;
scanf("%d",&kase);
while(kase--){
scanf("%d",&n);
for(i=1;i<=n;i++){
a[i].fat=i;
a[i].dis=0;
}
while(scanf("\n%c",&c)){
if(c=='O')break;
if(c=='E'){
scanf("%d",&x);
find(x);
printf("%d\n",a[x].dis);
}
if(c=='I'){
scanf("%d%d",&x,&y);
a[x].fat=y;
a[x].dis+=abs(x-y)%1000;
}
}
}
return 0;
}
UVA 3027 Corporative Network
最新推荐文章于 2023-01-05 17:09:10 发布