Pagini recente » Cod sursa (job #1627260) | Cod sursa (job #250533) | Cod sursa (job #1620922) | Cod sursa (job #1977336) | Cod sursa (job #576909)
Cod sursa(job #576909)
#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 t[r1]=r2;
}
else{
r1=root(x);
r2=root(y);
if(r1==r2)
printf("DA\n");
else printf("NU\n");
}
}
return 0;
}