Pagini recente » Cod sursa (job #338744) | Cod sursa (job #1567650) | Cod sursa (job #1012186) | Cod sursa (job #1949980) | Cod sursa (job #1719997)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100010
using namespace std;
int tata[N];
int findtat(int x){
while(tata[x]>0){
x=tata[x];
}
return x;
}
int main(){
int n,m;
int p,x,y,tatx,taty,t;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
memset(tata,-1,(n+1)*sizeof(int) );
for(;m;m--){
scanf("%d%d%d",&p,&x,&y);
if(p==1){
tatx=findtat(x);
taty=findtat(y);
if( -tata[tatx] > -tata[taty] ){
t=taty;
taty=tatx;
tatx=t;
t=y;
y=x;
x=t;
}
tata[taty]+=tata[tatx];
tata[tatx]=taty;
}else{
if( findtat(x)==findtat(y) ){
printf("DA\n");
continue;
}
printf("NU\n");
}
}
return 0;
}