Pagini recente » Cod sursa (job #2268022) | Cod sursa (job #2942127) | Cod sursa (job #2281060) | Cod sursa (job #2511671) | Cod sursa (job #2867820)
#include <iostream>
#include <vector>
#define NMAX 100003
using namespace std;
int N, M;
int c[NMAX];
int Find(int x) {
int y = x, t;
while(c[y] != y) {
y = c[y];
}
while(y != x) {
t = c[x];
c[x] = y;
x = t;
}
return x;
}
void Unite(int x, int y) {
int a = Find(y);
int b = Find(x);
c[a] = b;
}
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 j = 1; j <= M; j++) {
int cod, x, y;
scanf("%d %d %d", &cod, &x, &y);
if(cod == 1) {
Unite(x, y);
} else {
if(Find(x) == Find(y)) {
printf("DA\n");
}
else printf("NU\n");
}
}
return 0;
}