Pagini recente » Cod sursa (job #2951710) | Cod sursa (job #3140043) | Cod sursa (job #3295032) | Cod sursa (job #3136572) | Cod sursa (job #229280)
Cod sursa(job #229280)
#include<stdio.h>
#define N 100010
int n,m,i,dad[N],cod,a,b,la,lb,ca[N],cb[N];
void readd(),solve(),f1(),f2();
int main()
{
readd();
solve();
return 0;
}
void readd()
{
freopen("disjoint.in","rt",stdin);
freopen("disjoint.out","wt",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)dad[i]=i;
}
void solve()
{
for(;m;m--)
{ scanf("%d%d%d",&cod,&a,&b);
if(cod==1)f1();else f2();
}
}
void f1()
{ la=0;do{ ca[++la]=a;a=dad[a];}while(dad[a]-a);
lb=0;do{ cb[++lb]=b;b=dad[b];}while(dad[b]-b);
a=(a<b)?a:b;
for(i=1;i<=la;i++)dad[ca[i]]=a;
for(i=1;i<=lb;i++)dad[cb[i]]=a;
}
void f2()
{
la=0;do{ ca[++la]=a;a=dad[a];}while(dad[a]-a);
lb=0;do{ cb[++lb]=b;b=dad[b];}while(dad[b]-b);
for(i=1;i<=la;i++)dad[ca[i]]=a;
for(i=1;i<=lb;i++)dad[cb[i]]=b;
if(a==b)printf("DA\n");
else printf("NU\n");
}