Pagini recente » Cod sursa (job #88666) | Cod sursa (job #924346) | Cod sursa (job #140471) | Cod sursa (job #126709) | Cod sursa (job #826289)
Cod sursa(job #826289)
#include <stdio.h>
int t[100001];
int h[100001];
int find(int x)
{
if(t[x]==x)return x;
return find(t[x]);
}
void unite(int u,int v)
{
if(h[u]==h[v])
{
t[u]=t[v];h[u]++;
}
else
{
if(h[u]<h[v])
{
t[u]=t[v];
}
else
{
t[v]=t[u];
}
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,i,cod,x,y;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
t[i]=i;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&cod,&x,&y);
if(cod==1)
unite(x,y);
else
{
if(find(y)==x || find(x)==y)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}