Pagini recente » Cod sursa (job #1226327) | Diferente pentru autumn-warmup-2007/solutii/runda-2 intre reviziile 56 si 10 | Cod sursa (job #2013160) | Olimpiada Internationala de Informatica 2007 - jurnal de bord | Cod sursa (job #1998019)
#include <cstdio>
#include <cstring>
using namespace std;
#define IN "disjoint.in"
#define OUT"disjoint.out"
int n , m , x , y , caz;
int T[1000*103];
int Find_Root( int a )
{
while ( T[a]!= -1 )
a = T[a];
return a;
}
void Read_Solve()
{
int i , rx , ry;
scanf ( "%d%d" , &n , &m );
for ( i = 1 ; i <= m ; i ++ ){
scanf ( "%d%d%d" , &caz , &x , &y );
rx = Find_Root(x) , ry = Find_Root(y);
if ( caz == 1 )
T[ry] = rx;
else if ( rx == ry )
printf ("DA\n");
else printf ("NU\n");
}
}
int main()
{
freopen(IN,"r",stdin);
freopen(OUT,"w",stdout);
memset(T,-1,sizeof(T));
Read_Solve();
}