Pagini recente » Cod sursa (job #2817006) | Cod sursa (job #317708) | Cod sursa (job #2612660) | Cod sursa (job #1812539) | Cod sursa (job #2588438)
#include <stdio.h>
int t[100001];
int _find (int x) {
if (!t[x])
return x;
return t[x]=_find(t[x]);
}
void _union (int i, int j) {
int p1=_find(i),
p2=_find(j);
if (p1!=p2)
t[p2]=p1;
}
int main () {
FILE *fin=fopen ("disjoint.in", "r"),
*fout=fopen ("disjoint.out", "w");
int n, m, key, i, j;
fscanf (fin, "%d%d", &n, &m);
for (; m; m--) {
fscanf (fin, "%d%d%d", &key, &i, &j);
if (key==1)
_union(i, j);
else
fprintf (fout, _find(i)==_find(j)?"DA\n":"NU\n");
}
return 0;
}