Pagini recente » Cod sursa (job #1747051) | Cod sursa (job #240612) | Cod sursa (job #369137) | Cod sursa (job #2111948) | Cod sursa (job #1655881)
#include <cstdio>
int t[100001];
using namespace std;
int radacina( int k )
{
if( t[k]==k )
return k;
t[k]=radacina(t[k]);
return t[k];
}
inline void reuniune( int x, int y )
{
int rx, ry;
rx=radacina(x);
ry=radacina(y);
t[rx]=ry;
}
inline int verif( int x, int y )
{
return radacina(x)==radacina(y);
}
int main()
{
freopen( "disjoint.in", "r", stdin );
freopen( "disjoint.out", "w", stdout );
int n, m, i, p, a, b;
scanf( "%d%d", &n, &m );
for( i=1;i<=n;i++ )
t[i]=i;
for( i=1; i<=m; i++ )
{
scanf( "%d%d%d", &p, &a, &b );
if( p==1 )
reuniune(a,b);
else if( verif(a,b) )
printf( "DA\n" );
else
printf( "NU\n" );
}
return 0;
}