Pagini recente » Cod sursa (job #1991920) | Cod sursa (job #2660031) | Cod sursa (job #1313930) | Cod sursa (job #692012) | Cod sursa (job #907442)
Cod sursa(job #907442)
#include<cstdio>
long int tata[100005],n,m,x,y,t,i,tip;
void re()
{
long int t1,t2;
t=x;
while(t!=tata[t])t=tata[t];
t1=t;
t=y;
while(t!=tata[t])t=tata[t];
t2=t;
if(t1>t2){
t=y;
while(t!=tata[t]){
t2=t;
t=tata[t];
tata[t2]=t1;
}
tata[t]=t1;
}
else{
t=x;
while(t!=tata[t]){
t1=t;
t=tata[t];
tata[t1]=t2;
}
tata[t]=t2;
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%ld %ld",&n,&m);
for(i=1;i<=n;i++)tata[i]=i;
for(i=1;i<=m;i++){
scanf("%ld %ld %ld",&tip,&x,&y);
if(tip==1)re();
else
if(tip==2)
if(tata[x]==tata[y])printf("DA\n");
else printf("NU\n");
}
return 0;
}