Pagini recente » Cod sursa (job #1086653) | Cod sursa (job #2902978) | Cod sursa (job #2797504) | Cod sursa (job #122013) | Cod sursa (job #442106)
Cod sursa(job #442106)
#include<stdio.h>
#define Nmax 100005
int n, m, i, j, x, y, cod, a, b, c, d;
int v[Nmax], rang[Nmax];
int main (){
freopen ("disjoint.in", "r", stdin);
freopen ("disjoint.out", "w", stdout);
scanf("%d %d", &n, &m);
for (i = 1 ; i <= n ; i++)
v[i] = i;
for (i = 1 ; i <= m ; i++){
scanf("%d %d %d", &cod, &x, &y);
if (cod == 1){
if (rang[v[x]] < rang[v[y]]){
a = x;
while (a != v[a]){
a = v[a];
}
c = y;
while (c != v[c]){
c = v[c];
}
v[a] = v[c];
rang[c]++;
}
else{
a = x;
while (a != v[a]){
a = v[a];
}
c = y;
while (c != v[c]){
c = v[c];
}
v[c]=v[a];
rang[a]++;
}
}
if (cod == 2){
a = x;
while (a != v[a]){
a = v[a];
}
while (x != v[x]){
b = v[x];
v[x] = a;
x = b;
}
c = y;
while (c != v[c]){
c = v[c];
}
while (x != v[x]){
d = v[x];
v[x] = c;
x = d;
}
if (a == c)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}