Pagini recente » Cod sursa (job #192515) | Cod sursa (job #2514098) | Cod sursa (job #1442595) | Cod sursa (job #2220150) | Cod sursa (job #281268)
Cod sursa(job #281268)
#include <stdio.h>
#define Nmax 100001
int mul[Nmax],r[Nmax];
int n,m;
int det(int x)
{
if(mul[x]==x)
return x;
else
return det(mul[x]);
}
void unesc(int x,int y)
{
if(r[x]>r[y])
mul[y]=x;
else
mul[x]=y;
if(r[x]==r[y])
++r[y];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
int i,x,y,op;
for(i=1;i<=n;++i)
{
mul[i]=i;
r[i]=1;
}
for(i=1;i<=m;++i)
{
scanf("%d%d%d",&op,&x,&y);
if(op==2)
{
if(det(x)==det(y))
printf("DA\n");
else
printf("NU\n");
}
else
{
unesc(det(x),det(y));
}
}
return 0;
}