Pagini recente » Cod sursa (job #422497) | Cod sursa (job #2337252) | Cod sursa (job #2922483) | Cod sursa (job #1882254) | Cod sursa (job #1012213)
#include <stdio.h>
int t[100001];
int radacina(int p){
if(t[p]==0){
return p;
}
t[p]=radacina(t[p]);
return t[p];
}
int main(){
int cod,x,y,w,n,i;
FILE *fin,*fout;
fin=fopen("disjoint.in","r");
fout=fopen("disjoint.out","w");
fscanf(fin,"%d%d",&w,&n);
for(i=0;i<n;i++){
fscanf(fin,"%d%d%d",&cod,&x,&y);
if(t[x]!=0){
t[x]=radacina(x);
}
if(t[y]!=0){
t[y]=radacina(y);
}
switch(cod){
case 1 :
t[radacina(y)]=radacina(x);
break;
default :
if(radacina(x)==radacina(y)){
fprintf(fout,"DA\n");
}else {
fprintf(fout,"NU\n");
}
break;
}
}
fclose(fin);
fclose(fout);
return 0;
}