Pagini recente » Cod sursa (job #676209) | Cod sursa (job #67996) | Cod sursa (job #1471116) | Cod sursa (job #676287) | Cod sursa (job #1647687)
#include <iostream>
#include <cstdio>
using namespace std;
int n,m1,m[100008];
int rad(int n)
{
int aux=n,t,r;
while(m[aux]!=aux)
{
aux=m[aux];
}
r=aux;
aux=n;
while(m[aux]!=aux)
{
t=m[aux];
m[aux]=r;
aux=t;
}
return r;
}
int unite(int p1,int p2)
{
m[p2]=p1;
}
int main()
{
int i,op,v1,v2;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m1);
for(i=1;i<=n;i++) m[i]=i;
for(;m1;m1--)
{
scanf("%d%d%d",&op,&v1,&v2);
if(op==2)
{
if(rad(v1)==rad(v2)) printf("DA\n");
else printf("NU\n");
} else unite(rad(v1),rad(v2));
}
fclose(stdin);
fclose(stdout);
return 0;
}