Pagini recente » Cod sursa (job #744436) | Cod sursa (job #2915538) | Cod sursa (job #1087805) | Cod sursa (job #1140271) | Cod sursa (job #1730965)
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;
int N,M,daddy[Nmax],depth[Nmax];
int whos_ur_daddy(int k)
{
if(daddy[k] != k)
daddy[k] = whos_ur_daddy(daddy[k]);
return daddy[k];
}
void couple(int a,int b)
{
if(depth[a] > depth[b])
daddy[b] = a;
else
{
daddy[a] = b;
if(depth[a] == depth[b])
depth[b] += 1;
}
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&N,&M);
for(int i = 1; i <= N; ++i)
daddy[i] = i;
int tip,a,b;
for(int i = 1; i <= M; ++i)
{
scanf("%d%d%d",&tip,&a,&b);
if(tip == 1)
{
if(whos_ur_daddy(a) != whos_ur_daddy(b))
couple(daddy[a],daddy[b]);
}
else
if(whos_ur_daddy(a) == whos_ur_daddy(b))
printf("DA\n");
else
printf("NU\n");
}
return 0;
}