Pagini recente » Cod sursa (job #2940286) | Cod sursa (job #1607923) | Cod sursa (job #929559) | Cod sursa (job #1042125) | Cod sursa (job #494991)
Cod sursa(job #494991)
#include<stdio.h>
FILE*f=fopen("disjoint.in","r");
FILE*g=fopen("disjoint.out","w");
int N,M,a,b,ra,rb,T[100100];
char caz;
int radacina( int ii ) {
while ( T[ii] > 0 ) ii = T[ii];
return ii;
}
int main () {
fscanf(f,"%d %d",&N,&M);
while( M -- ){
fscanf(f,"%d %d %d",&caz,&a,&b);
if ( !(caz - 1) ){
ra = radacina(a);
rb = radacina(b);
if ( ra > rb ){
T[ra] += T[rb];
T[rb] = ra;
}
else{
T[rb] += T[ra];
T[ra] = rb;
}
}
else{
ra = radacina(a);
rb = radacina(b);
if(ra == rb)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
}
fclose(f);
fclose(g);
return 0;
}