Pagini recente » Cod sursa (job #1057986) | Cod sursa (job #2905897) | Cod sursa (job #1544507) | Cod sursa (job #1858747) | Cod sursa (job #1418223)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100001
int v[MAXN];
inline int find(int x){
int x1=x,aux;
while(v[x]>0)
x=v[x];
while(v[x1]>0){
aux=v[x1];
v[x1]=x;
x1=aux;
}
return x;
}
int main(){
FILE*fi,*fout;
int i,t,x,y,n,m;
fi=fopen("disjoint.in" ,"r");
fout=fopen("disjoint.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
for(i=0;i<m;i++){
fscanf(fi,"%d%d%d" ,&t,&x,&y);
if(t==1){
v[y]=find(x);
find(y);
}
else
if(find(x)==find(y))
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
for(i=1;i<=n;i++)
printf("%d " ,v[i]);
fclose(fi);
fclose(fout);
return 0;
}