Pagini recente » Cod sursa (job #2156732) | Cod sursa (job #2430254) | Cod sursa (job #2860605) | Cod sursa (job #1074630) | Cod sursa (job #1398074)
#include <stdio.h>
int v[100001];
int main(){
FILE *fin,*fout;
fin=fopen("disjoint.in","r");
fout=fopen("disjoint.out","w");
int i,n,m,a,b,x,y,cop,max,cer;
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++)
v[i]=i;
for(i=1;i<=m;i++){
fscanf(fin,"%d%d%d",&cer,&x,&y);
a=x;
b=y;
while(a!=v[a])
a=v[a];
while(b!=v[b])
b=v[b];
if(cer==2)
if(a==b)
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
else{
max=0;
if(a>max)
max=a;
if(b>max)
max=b;
}
a=x;
b=y;
while(v[a]!=max){
cop=v[a];
v[a]=max;
a=cop;
}
v[a]=max;
while(v[b]!=max){
cop=v[b];
v[b]=max;
b=cop;
}
v[b]=max;
}
fclose(fin);
fclose(fout);
return 0;
}