Pagini recente » Cod sursa (job #2901159) | Cod sursa (job #2860765) | Cod sursa (job #94209) | Cod sursa (job #707992) | Cod sursa (job #1474721)
#include <cstdio>
using namespace std;
int n,mit,m[100008];
int rad(int x)
{
int R,y;
for(R=x;m[R]!=R;R=m[R]);
for(;m[x]!=x;)
{
y=m[x];
m[x]=R;
x=y;
}
return R;
}
int unite(int x,int y)
{
m[y]=m[x];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&mit);
int i,op,x,y;
for(i=1;i<=n;i++) m[i]=i;
for(;mit;mit--)
{
scanf("%d%d%d",&op,&x,&y);
if(op==2)
{
if(rad(x)==rad(y)) printf("DA\n");
else printf("NU\n");
}
else unite(rad(x),rad(y));
}
fclose(stdin);
fclose(stdout);
return 0;
}