#pragma warning(disable:4996)
#include <cstdio>
#include <iostream>
using namespace std;
int s[10001];
int book[10001][2];
int find(int x)
{
if (s[x] == x) return x;
int t = s[x];
s[x] = find(s[x]);
book[x][1] += book[t][1];
return s[x];
}
int main()
{
int T;
scanf("%d", &T);
for (int i = 1; i <= T; i++)
{
printf("Case %d:\n", i);
int n, q;
scanf("%d%d", &n, &q);
for (int j = 1; j <= n; j++)
{
s[j] = j;
book[j][0] = 1;
book[j][1] = 0;
}
for (int j = 1; j <= q; j++)
{
char m;
getchar();
scanf("%c", &m);
if (m == 'T')
{
int a, b;
scanf("%d%d", &a, &b);
int x = find(a);
int y = find(b);
if (x == y) continue;
s[x] = y;
book[y][0] += book[x][0];
book[x][0] = 0;
book[x][1]++;
}
else
{
int a, x, z = 0;
scanf("%d", &a);
x = find(a);
printf("%d %d %d\n", x, book[x][0], book[a][1]);
}
}
}
return 0;
}
HDU3635 Dragon Balls
最新推荐文章于 2021-06-04 00:18:15 发布