Pagini recente » Cod sursa (job #2413819) | Cod sursa (job #2681422) | Cod sursa (job #1828807) | Cod sursa (job #2308018) | Cod sursa (job #1477798)
#include <cstdio>
#define LIM 100023
int t[LIM],ct[LIM];
int n,m;
int tata(int a)
{
while(t[a]!=0) a=t[a];
return a;
}
int main()
{
freopen ("disjoint.in","r",stdin);
freopen ("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
int tip,x1,x2;
for(int i=1;i<=LIM;i++) ct[i]=1;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&x1,&x2);
x1=tata(x1);
x2=tata(x2);
if(tip==1)
{
if(ct[x1]>=ct[x2])
{
t[x2]=x1;
ct[x1]+=ct[x2];
}
else
{
t[x1]=x2;
ct[x2]+=ct[x1];
}
}
else
{
x1=tata(x1);
x2=tata(x2);
if(x1==x2) printf("DA\n");
else printf("NU\n");
}
}
}