Pagini recente » Cod sursa (job #3191324) | Cod sursa (job #3289477) | Cod sursa (job #2820387) | Cod sursa (job #2745875) | Cod sursa (job #2364004)
#include <iostream>
#include <stdio.h>
using namespace std;
const int NMAX = 100001;
int sef[NMAX];
int sefsuprem(int x) {
if (sef[x] == x)
return x;
else
return sef[x] = sefsuprem(sef[x]);
}
void unire(int x, int y) {
int sefsx = sefsuprem(x);
int sefsy = sefsuprem(y);
sef[sefsx] = sefsy;
}
int main() {
freopen ("disjoint.in", "r", stdin);
freopen ("disjoint.out", "w", stdout);
int n, m, x, y, cod, i;
scanf ("%d%d", &n, &m);
for (i = 1; i <= n; i++)
sef[i] = i;
for (i = 1; i <= m; i++) {
scanf ("%d%d%d", &cod, &x, &y);
if (cod == 1)
unire (x, y);
else {
if (sefsuprem(x) == sefsuprem(y))
printf ("DA\n");
else
printf ("NU\n");
}
}
return 0;
}