Pagini recente » Cod sursa (job #2024943) | Cod sursa (job #224096) | Cod sursa (job #350028) | Cod sursa (job #430060) | Cod sursa (job #355330)
Cod sursa(job #355330)
#include<stdio.h>
#define Nmx 100001
int T[Nmx],R[Nmx];
int n,m;
int find(int x)
{
int Q=x,y;
while(T[Q]!=Q)
Q=T[Q];
while(T[x]!=x)
{
y=T[x];
T[x]=Q;
x=y;
}
return Q;
}
void add(int x,int y)
{
if(R[x]>R[y])
T[y]=x;
else T[x]=y;
if(R[x]==R[y])
R[y]++;
}
void citire()
{
scanf("%d%d",&n,&m);
int q,x,y;
for(int i=1;i<=n;++i)
{
T[i]=i;
R[i]=1;
}
for(int i=1;i<=m;++i)
{
scanf("%d%d%d",&q,&x,&y);
if(q==2)
{
if(find(x)==find(y))
printf("DA\n");
else printf("NU\n");
}
else add(find(x),find(y));
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
citire();
return 0;
}