Pagini recente » Cod sursa (job #330796) | Cod sursa (job #223968) | Cod sursa (job #635813) | Cod sursa (job #35073) | Cod sursa (job #576907)
Cod sursa(job #576907)
#include<cstdio>
using namespace std;
int t[100001],r[100001];
int root(int x){
if(t[x]==x)
return x;
else{
t[x]=root(t[x]);
return t[x];
}
}
int main(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,i,tip,x,y,r1,r2;
scanf("%d %d",&n,&m);
for(i=1;i<=n;++i)
{ t[i]=i; r[i]=0; }
for(i=0;i<m;++i)
{ scanf("%d %d %d",&tip,&x,&y);
if(tip==1){
r1=root(x);
r2=root(y);
if(r[r1]==r[r2]){
t[r2]=r1;
r[r1]++;
}
else
if(r[r1]>r[r2]) t[r2]=r1;
else r[r1]=r2;
}
else{
r1=root(x);
r2=root(y);
if(r1==r2)
printf("DA\n");
else printf("NU\n");
}
}
return 0;
}