Pagini recente » Cod sursa (job #2308453) | Cod sursa (job #959414) | Cod sursa (job #1507020) | Cod sursa (job #474381) | Cod sursa (job #285161)
Cod sursa(job #285161)
#include<stdio.h>
#define Nmax 100002
int i,j,k,l,m,n,tip[Nmax],ant[Nmax],ult[Nmax];
void merge(int a,int b){
ant[ult[a]]=b;
ult[a]=ult[b];
int i;
i=b;
do
{tip[i]=a;
i=ant[i];
}
while(i);
}
int main(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{tip[i]=i;
ult[i]=i;
}
for(i=1;i<=m;i++)
{scanf("%d %d %d",&j,&k,&l);
if(j==2)
{if(tip[k]==tip[l])printf("%s\n","DA");
else
printf("%s\n","NU");
}
else
merge(tip[k],tip[l]);
}
return 0;}