Pagini recente » Cod sursa (job #1978356) | Cod sursa (job #1754816) | Cod sursa (job #3146802) | Cod sursa (job #743888) | Cod sursa (job #1889626)
#include <stdio.h>
#define N 100001
using namespace std;
int n, m, p, x, y, r1, r2, t[N], h[N];
int root(int n)
{
int aux = n, w;
while (t[n]) n = t[n];
while (t[aux]) {
w = t[aux];
t[aux] = n;
aux = w;
}
return n;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%i%i", &n, &m);
while (m--) {
scanf("%i%i%i", &p, &x, &y);
r1 = root(x);
r2 = root(y);
if (p == 1) {
if (h[r1] < h[r2])
t[r1] = r2;
else if (h[r1] > h[r2])
t[r2] = r1;
else {
t[r2] = r1;
h[r1]++;
}
} else printf("%s", r1 == r2 ? "DA\n" : "NU\n");
}
return 0;
}