Pagini recente » Cod sursa (job #122573) | Cod sursa (job #1016068) | Cod sursa (job #2853122) | Cod sursa (job #2785921) | Cod sursa (job #2700995)
#include <iostream>
#include <cstdio>
using namespace std;
const int NMAX=100000;
int sef[NMAX+5];
int sef_suprem(int a)
{
if(sef[a]==a)
return a;
else
{
sef[a]=sef_suprem(sef[a]);
return sef[a];
}
}
void unire(int a, int b)
{
int sefa,sefb;
sefa=sef_suprem(a);
sefb=sef_suprem(b);
sef[sefa]=sefb;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,k,tip,x,y,i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
sef[i]=i;
for(i=1;i<=k;i++)
{
scanf("%d%d%d",&tip,&x,&y);
if(tip==1)
unire(x,y);
else
if(sef_suprem(x)==sef_suprem(y))
printf("DA\n");
else
printf("NU\n");
}
return 0;
}