Pagini recente » Cod sursa (job #1526321) | Cod sursa (job #1218166) | Cod sursa (job #2303269) | Cod sursa (job #2648394) | Cod sursa (job #1486187)
#include<cstdio>
int n,m,i,j,p,a,b,ra,rb,d[100100];
FILE *f,*g;
int rad(int a){
while(d[a]>0){
a=d[a];
}
return a;
}
int main(){
f=fopen("disjoint.in","r");
g=fopen("disjoint.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
d[i]=-1;
}
for(i=1;i<=m;i++){
fscanf(f,"%d%d%d",&p,&a,&b);
if(p==2){
ra=rad(a);
rb=rad(b);
if(ra==rb)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
else{
ra=rad(a);
rb=rad(b);
if(ra==rb)
continue;
if(d[ra]<d[rb]){
d[ra]=d[ra]+d[rb];
d[rb]=ra;
}
else{
d[rb]=d[rb]+d[ra];
d[ra]=rb;
}
}
}
fclose(f);
fclose(g);
return 0;
}