Pagini recente » Cod sursa (job #437373) | Cod sursa (job #2534683) | Cod sursa (job #491434) | Cod sursa (job #380619) | Cod sursa (job #2794336)
#include <assert.h>
#include <stdio.h>
#define MAXN 100000
int jump_back[MAXN];
int
root (int x) {
if (jump_back[x] == x)
return x;
return jump_back[x] = root(jump_back[x]);
}
void
join (int a, int b) {
jump_back[root(a)] = root(b);
}
int main () {
int n, m;
int i;
assert(freopen("disjoint.in", "r", stdin));
assert(freopen("disjoint.out", "w", stdout));
assert(scanf("%d%d", &n, &m) == 2);
for (i = 0; i != n; ++ i)
jump_back[i] = i;
for (i = 0; i != m; ++ i) {
int a, b;
int c;
assert(scanf("%d%d%d", &c, &a, &b) == 3);
-- a, -- b;
if (c == 1)
join(a, b);
else
puts(root(a) == root(b) ? "DA" : "NU");
}
return 0;
}