Pagini recente » Cod sursa (job #889922) | Cod sursa (job #336016) | Cod sursa (job #2671402) | Cod sursa (job #298346) | Cod sursa (job #2917754)
#include <cstdio>
const int max_n = 100005;
int n, m, tip, x, y;
int c[max_n];
int find(int x) {
int p = x;
while(c[p] != p) {
p = c[p];
}
while(x != p) {
int t = c[x];
c[x] = p;
x = t;
}
return x;
}
void unite(int x, int y) {
c[find(x)] = find(y);
}
int main () {
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) {
c[i] = i;
}
for(int i = 1; i <= m; i++) {
scanf("%d%d%d", &tip, &x, &y);
if(tip == 1) {
unite(x, y);
} else {
if(find(x) == find(y)) {
printf("DA\n");
} else {
printf("NU\n");
}
}
}
return 0;
}