Pagini recente » Cod sursa (job #1674057) | Cod sursa (job #517833)
Cod sursa(job #517833)
#include<cstdio>
#define min(a,b) a<b?a:b
#define max(a,b) a>b?a:b
void read(),solve();
int x,y,i,n,m,dad[100010],c;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)dad[i]=i;
}
void solve()
{
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&c,&x,&y);
if(c==1)
{
if(x!=dad[x])while(dad[x]!=dad[dad[x]])dad[x]=dad[dad[x]];
if(y!=dad[y])while(dad[y]!=dad[dad[y]])dad[y]=dad[dad[y]];
dad[max(dad[x],dad[y])]=min(dad[x],dad[y]);
continue;
}
if(x!=dad[x])while(dad[x]!=dad[dad[x]])dad[x]=dad[dad[x]];
if(y!=dad[y])while(dad[y]!=dad[dad[y]])dad[y]=dad[dad[y]];
if(dad[x]==dad[y])printf("DA\n");else printf("NU\n");
}
}