Pagini recente » Cod sursa (job #1084232) | Cod sursa (job #13517) | Cod sursa (job #569717) | Cod sursa (job #1573468) | Cod sursa (job #615517)
Cod sursa(job #615517)
#include<cstdio>
#define NM 100001
int rang[NM],gr[NM];
int find(int x)
{
if (gr[x]!=x)
gr[x]=find(gr[x]);
return gr[x];
}
void unesc(int x, int y)
{
if (rang[x]>rang[y])
gr[x]=y;
else
{
gr[y]=x;
rang[x]+=(rang[x]==rang[y]);
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int N,M;
scanf("%d%d",&N,&M);
for (int i=1; i<=N; ++i)
gr[i]=i,rang[i]=0;
int x,y,op,u,v;
while (M--)
{
scanf("%d%d%d",&op,&x,&y);
u=find(x);
v=find(y);
if (op==1)
{
unesc(u,v);
continue;
}
if (u==v) printf("DA\n");
else
printf("NU\n");
}
return 0;
}