Pagini recente » Cod sursa (job #2767091) | Cod sursa (job #2248783) | Cod sursa (job #324013) | Cod sursa (job #2965182) | Cod sursa (job #1727388)
#include <stdio.h>
typedef struct nod {
int value;
struct nod* parent;
} node;
node v[100005];
void _union (int a, int b) {
v[a].parent = &v[b];
}
int _find (int a) {
node crt = v[a];
while (crt.parent != NULL)
crt = *crt.parent;
return crt.value;
}
int main (){
freopen ("disjoint.in", "r", stdin);
freopen ("disjoint.out", "w", stdout);
int n, m;
scanf ("%d%d", &n, &m);
int i;
for (i = 1; i <= n; ++i) {
v[i].value = i;
v[i].parent = NULL;
}
for (i = 1; i <= m; ++i) {
int t; scanf ("%d", &t);
int a, b; scanf ("%d%d", &a, &b);
if (t == 1)
_union (a, b);
else
printf ("%s\n", _find(a) == _find(b) ? "DA" : "NU");
}
return 0;
}