Pagini recente » Cod sursa (job #765641) | Cod sursa (job #2588105) | Cod sursa (job #626345) | Cod sursa (job #718809) | Cod sursa (job #300381)
Cod sursa(job #300381)
#include<stdio.h>
int t[100001],r[100001],n,m;
int fct(int n)
{ int x=n;
while(t[x]!=x)
x=t[x];
while(t[n]!=n)
{ int y=t[n];
t[n]=x;
n=y;
}
return x;
}
int main()
{ freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int x,y,c,i;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{ t[i]=i;
r[i]=1;
}
for(i=1;i<=m;i++)
{ scanf("%d%d%d",&c,&x,&y);
if(c==1)
{ int tt,s;
tt=fct(x);
s=fct(y);
if(t[tt]<t[s])
t[tt]=s;
else t[s]=tt;
if(r[tt]==r[s])
r[tt]++;
}
else { int tt,s;
tt=fct(x);
s=fct(y);
if(tt==s) printf("DA\n");
else printf("NU\n");
}
}
fclose(stdin);
fclose(stdout);
return 0;
}