📄 3538144_ac_282ms_448k.cc
字号:
#include <stdio.h>
int n;
int p[20001], len[20001];
inline int f(int n)
{
return (n < 0 ? -n : n) % 1000;
}
inline int findSet(int x)
{
if (x != p[x])
{
int t = p[x];
p[x] = findSet(t);
len[x] += len[t];
return p[x];
}
else
return x;
}
int main()
{
int i, cas;
char com[2];
int a, b;
scanf("%d", &cas);
while (cas-- > 0)
{
scanf("%d", &n);
for (i = 0; i < n; i++)
{
len[i] = 0;
p[i] = i;
}
while (true)
{
scanf("%s", com);
if (com[0] == 'I')
{
scanf("%d%d", &a, &b);
a--;b--;
p[a] = findSet(b);
len[a] = f(a - b) + len[b];
continue;
}
if (com[0] == 'E')
{
scanf("%d", &a);
a--;
findSet(a);
printf("%d\n", len[a]);
continue;
}
break;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -