Pagini recente » Cod sursa (job #164759) | Cod sursa (job #2284895) | Cod sursa (job #1212697) | Cod sursa (job #1145996) | Cod sursa (job #2576717)
#include <cstdio>
#define NMAX 100000
using namespace std;
int sef[NMAX+1];
int card;
int find ( int nr ) {
if (nr == sef[nr])
return nr;
return sef[nr] = find(sef[nr]);
}
int uneste ( int x, int y ) {
int sefx, sefy, cardx, cardy;
sefx = find ( x );
cardx = card;
sefy = find ( y );
cardy = card;
if ( cardx < cardy )
sef[sefx] = sefy;
else
sef[sefy] = sefx;
}
int main() {
freopen ( "disjoint.in", "r", stdin );
freopen ( "disjoint.out", "w", stdout );
int n, m, x, y, cod, i;
scanf ( "%d%d",&n, &m );
for ( i = 1 ; i <= n ; i ++ )
sef[i] = i;
for ( i = 1 ; i <= m ; i ++ ) {
scanf ( "%d%d%d",&cod, &x, &y );
if ( cod == 1 )
uneste ( x, y );
else {
if ( find ( x ) == find ( y ) )
printf ( "DA\n" );
else
printf ( "NU\n" );
}
}
return 0;
}