Pagini recente » Cod sursa (job #2648337) | Cod sursa (job #2140909) | Cod sursa (job #2836397) | Cod sursa (job #1371230) | Cod sursa (job #1920004)
#include <cstdio>
#include <algorithm>
using namespace std;
int rad[100010],h[100010];
int radacin(int x)
{
int y=x;
for(;x!=rad[x];x=rad[x]);
while(y!=x)
{
int aux=rad[y];
rad[y]=x;
y=aux;
}
return x;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int n,m,tip,x,y;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
rad[i]=i;
h[i]=1;
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&x,&y);
if(tip==1)
{
x=radacin(x);y=radacin(y);
if(h[x]<h[y]) swap(x,y);
rad[y]=x;
if(h[x]==h[y]) h[x]++;
}
else if(radacin(x)==radacin(y)) printf("DA\n");
else printf("NU\n");
}
return 0;
}