Pagini recente » Cod sursa (job #2541175) | Cod sursa (job #408116) | Cod sursa (job #25460) | Cod sursa (job #2151078) | Cod sursa (job #803139)
Cod sursa(job #803139)
#include<stdio.h>
FILE *fin=fopen("disjoint.in","r");
FILE *fout=fopen("disjoint.out","w");
int n,m,a,b,i,tip,t[100010],ra,rb;
void init(){
for(int i = 1; i <= n ; i++){
t[i]=-1;
}
}
int main(){
fscanf(fin,"%d %d",&n,&m);
init();
for(i=1;i<=m;i++){
fscanf(fin,"%d %d %d",&tip, &a, &b);
if(tip==1){ // asociere
ra=a;
while( t[ra]>0 ){
ra=t[ra];
}
rb=b;
while(t[rb]>0){
rb=t[rb];
}
if(t[ra]<t[rb]){
t[ra]+=t[rb];
t[rb]=ra;
}
else{
t[rb]+=t[ra];
t[ra]=rb;
}
}
else{ // querb
ra=a;
while(t[ra]>0){
ra=t[ra];
}
rb=b;
while(t[rb]>0){
rb=t[rb];
}
if(ra==rb){
fprintf(fout,"DA\n");
}
else fprintf(fout,"NU\n");
}
}
return 0;
}