Pagini recente » Cod sursa (job #1018259) | Cod sursa (job #379047) | Cod sursa (job #2612617) | Cod sursa (job #1230572) | Cod sursa (job #2794332)
#include <assert.h>
#include <stdio.h>
#define MAXN 100000
int parent[MAXN];
int
root (int x) {
if (parent[x] == x)
return x;
return root(parent[x]);
}
void
join (int a, int b) {
parent[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)
parent[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;
}