Pagini recente » Cod sursa (job #2067733) | Cod sursa (job #1744741) | Cod sursa (job #2700519) | Cod sursa (job #405752) | Cod sursa (job #1649869)
#include<cstdio>
using namespace std;
FILE * fin = fopen("disjoint.in","r");
FILE * fout = fopen("disjoint.out","w");
int t[100005],n,m,x,y,op,a,b;
int rad( int nod ){
if( t[nod] > 0 ){
nod = rad( t[nod] );
}
return nod;
}
int main(){
fscanf( fin, "%d%d", &n, &m );
for( int i = 1; i <= n; i++ ){
t[i] = -1;
}
for( int k = 1; k <= m; k++ ){
fscanf( fin, "%d%d%d", &op, &x, &y );
if( op == 1 ){
a = rad(x);
b = rad(y);
if( t[a] <= t[b] ){
t[a] -= t[b];
t[b] = a;
}else{
t[b] -= t[a];
t[a] = b;
}
}else{
a = rad(x);
b = rad(y);
if( a == b ){
fprintf( fout, "DA\n" );
}else{
fprintf( fout, "NU\n" );
}
}
}
return 0;
}