Pagini recente » Cod sursa (job #619784) | Cod sursa (job #2323147) | Cod sursa (job #2820018) | Cod sursa (job #1607983) | Cod sursa (job #957805)
Cod sursa(job #957805)
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#define NMAX 100010
using namespace std;
int N,M, cod, u, v;
int parent[NMAX], height[NMAX];
int set( int u ){
if( u != parent[u] )
parent[u] = set( parent[u] );
return u;
}
void link( int x, int y){
if( height[x] > height[y] )
parent[y] = x;
else{
parent[x] = y;
}
if( height[x] == height[y] )
height[y] ++;
}
int main(){
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d %d ", &N, &M);
for( int i = 1 ; i <= N; i++){
parent[i] = i;
height[i] = 1;
}
for( int i = 0 ; i < M; i++ ){
scanf("%d %d %d", &cod, &u, &v);
if( cod == 1 )
link( set(u), set(v) );
else{
if( set(u) == set(v) )
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}