Pagini recente » Cod sursa (job #2159051) | Cod sursa (job #2889185) | Cod sursa (job #1508868) | Cod sursa (job #96959) | Cod sursa (job #2348413)
#include <bits/stdc++.h>
int v[100000];
int sz[100000];
int parc(int i){
if(v[i]==i)
return i;
if(v[i]!=i)
{
v[i]=parc(v[i]);
return v[i];
}
}
int main()
{
int n,m,cer,a,b,i;
FILE*fi,*fo;
fi=fopen("disjoint.in","r");
fo=fopen("disjoint.out","w");
fscanf(fi,"%d%d",&n,&m);
for(i=0;i<n;i++){
v[i]=i;
sz[i]=1;
}
for(i=0;i<m;i++){
fscanf(fi,"%d%d%d",&cer,&a,&b);
a--;
b--;
if(cer==1){
parc(a);
parc(b);
if(sz[a]>sz[b]){
v[v[b]]=v[a];
parc(b);
}
else {
v[v[a]]=v[b];
parc(a);
}
}
else {
if(v[a]==v[b])
fprintf(fo,"DA\n");
else fprintf(fo,"NU\n");
}
}
fclose(fi);
fclose(fo);
return 0;
}