Pagini recente » Cod sursa (job #1362753) | Cod sursa (job #2633514) | Cod sursa (job #1781746) | Cod sursa (job #315425) | Cod sursa (job #563591)
Cod sursa(job #563591)
#include<stdio.h>
#define NMAX 100100
int N,M,i,tip,x,y,rang[NMAX],t[NMAX];
inline void un(int a, int b)
{
if( rang[a] > rang[b] )
{
++rang[a];
t[b] = t[a];
}
else
{
++rang[b];
t[a] = t[b];
}
}
inline int find_group(int a)
{
while( t[a]!=t[t[a]] ) t[a] = find_group(t[a]);
return t[a];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&N,&M);
for( i=1; i<=N; i++ )
t[i] = i;
for( i=0; i<M; i++ )
{
scanf("%d%d%d",&tip,&x,&y);
if( tip==1 ) un( find_group(x), find_group(y) );
else
{
if( find_group(x)==find_group(y) ) printf("DA\n");
else printf("NU\n");
}
}
return 0;
}