Pagini recente » Cod sursa (job #2785516) | Cod sursa (job #216710) | Cod sursa (job #1113785) | Cod sursa (job #1969839) | Cod sursa (job #2629220)
#include <stdio.h>
#include <ctype.h>
#define N 100000
int read () {
int ch;
while (!isdigit(ch=getchar()));
int ans=0;
do
ans = (ans<<3) + (ans<<1) + ch - '0';
while (isdigit(ch=getchar()));
return ans;
}
int t[N+1];
int _find (int x) {
if (!t[x])
return x;
return t[x]=_find(t[x]);
}
void _union (int x, int y) {
int p1=_find(x),
p2=_find(y);
if (p1!=p2)
t[p2]=p1;
}
int main () {
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int n, m;
n=read(), m=read();
int i, j, k;
for (; m; m--) {
k=read(), i=read(), j=read();
if (k==1)
_union(i, j);
else
puts(_find(i) == _find(j)?"DA":"NU");
}
return 0;
}