Pagini recente » Cod sursa (job #517623) | Cod sursa (job #467334) | Cod sursa (job #786352) | Cod sursa (job #2815811) | Cod sursa (job #1418225)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100001
int v[MAXN];
inline int find(int x){
int x1=x,aux;
while(v[x]>0)
x=v[x];
while(v[x1]>0){
aux=v[x1];
v[x1]=x;
x1=aux;
}
return x;
}
int main(){
FILE*fi,*fout;
int i,t,x,y,n,m,j;
fi=fopen("disjoint.in" ,"r");
fout=fopen("disjoint.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
for(i=0;i<m;i++){
fscanf(fi,"%d%d%d" ,&t,&x,&y);
if(t==1){
v[y]=find(x);
x=find(y);
}
else
if((find(x)==0&&x==y)||(find(x)==find(y)&&find(x)>0))
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
fclose(fi);
fclose(fout);
return 0;
}