Pagini recente » Cod sursa (job #2661844) | Cod sursa (job #1295260) | Cod sursa (job #1488883) | Cod sursa (job #3274631) | Cod sursa (job #2243848)
#include <bits/stdc++.h>
using namespace std;
FILE *f = freopen( "disjoint.in", "r", stdin );
FILE *g = freopen( "disjoint.out", "w", stdout );
int n, m, father[100005], dim[100005];
int Dad( int x )
{
if( x != father[x] )
father[x] = Dad( father[x] );
return father[x];
}
void Union( int x, int y )
{
x = Dad( x );
y = Dad( y );
if( dim[x] < dim[y] )
{
dim[y] += dim[x];
father[x] = y;
}
else
{
dim[x] += dim[y];
father[y] = x;
}
}
int main()
{
scanf( "%d%d", &n, &m );
for( int i = 1; i <= n; ++i )
{
father[i] = i;
dim[i] = 1;
}
for( int i = 1; i <= m; ++i )
{
int op, x, y;
scanf( "%d%d%d", &op, &x, &y );
if( op == 1 )
Union( x, y );
else
printf( "%s\n", Dad( x ) == Dad( y ) ? "DA" : "NU" );
}
return 0;
}