Pagini recente » Cod sursa (job #2860161) | Cod sursa (job #2369715) | Cod sursa (job #2125256) | Cod sursa (job #3176886) | Cod sursa (job #562998)
Cod sursa(job #562998)
#include<stdio.h>
FILE*f=fopen("disjoint.in","r");
FILE*g=fopen("disjoint.out","w");
int xx,yy,z,x,y,n,k,i,a,b;
int t[100001];
void update(int x,int y){
while(t[x]>0)
x=t[x];
xx=x;
while(t[y]>0)
y=t[y];
yy=y;
if(t[xx]<t[yy]){
t[xx]+=t[yy];
t[yy]=xx;
}else{
t[yy]+=t[xx];
t[xx]=yy;
}
}
void query(int x,int y){
while(t[x]>0)
x=t[x];
xx=x;
while(t[y]>0)
y=t[y];
yy=y;
if(xx==yy)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
int main() {
fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;++i)
t[i]=-1;
for(i=1;i<=k;++i){
fscanf(f,"%d%d%d",&z,&a,&b);
if(z==1)
update(a,b);
else
query(a,b);
}
fclose(g);
fclose(f);
return 0;
}