Pagini recente » Cod sursa (job #2288288) | Cod sursa (job #2522981) | Cod sursa (job #819917)
Cod sursa(job #819917)
#include<stdio.h>
long n , m , tx , ty , cod , t[ 100007 ] , h [ 100007 ] , x , y;
long father (long u)
{
if (u == t[ u ] )
return u;
return father( t[ u ] );
}
void unite(long u , long v)
{
if (h[ u ] == h[ v ])
{
t[ v ] = u;
h[ u ]++;
}
else
if (h[ u ] > h[ v ])
t [ v ] = u;
else
t [ u ] = v;
}
int main()
{
freopen("disjoint.in" , "r" , stdin);
freopen("disjoint.out" , "w" , stdout);
scanf("%ld %ld" , &n , &m);
for (int i = 1 ; i <= n ;++i)
t[ i ] = i, h[ i ] = 1;
for (long i = 1 ; i <= m ;++i)
{
scanf("%ld %ld %ld" , &cod , &x , &y);
if (cod == 1)
{
tx = father ( x );
ty = father ( y );
if (tx != ty)
unite ( tx, ty );
}
else
{
tx = father ( x );
ty = father ( y );
if (tx == ty)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}