Pagini recente » Cod sursa (job #1682583) | Cod sursa (job #1244067) | Cod sursa (job #237450) | Cod sursa (job #583800) | Cod sursa (job #1397746)
#include <cstdio>
using namespace std;
#define MAXN 100010
int TT[MAXN];
int N, M;
int find(int x) {
int R;
for (R = x; TT[R] != R; R = TT[R]);
return R;
}
void unite(int x, int y) {
TT[x] = y;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d %d", &N, &M);
int i, t, x, y;
for (i = 1; i <= N; i++) {
TT[i] = i;
}
while (M--) {
scanf("%d %d %d", &t, &x, &y);
if (t == 1) {
unite(x, y);
} else if (t == 2) {
printf("%s\n", (find(x) == find(y) ? "DA" : "NU"));
}
}
return 0;
}