Pagini recente » Cod sursa (job #2466060) | Cod sursa (job #2629173) | Cod sursa (job #1494343) | Cod sursa (job #3292723) | Cod sursa (job #1984003)
#include <cstdio>
#include <algorithm>
using namespace std;
const int Max = 100007;
int rad[Max], h[Max];
int kok(int nr)
{
int y = nr;
for(; nr != rad[nr]; nr =rad[nr]);
while(y != nr)
{
int aux = rad[y];
rad[y] = nr;
y = aux;
}
return nr;
}
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] = i;
}
for(int i = 1; i <= m; ++i)
{
scanf("%d%d%d",&tip,&x,&y);
if(tip == 1)
{
x = kok(x);
y = kok(y);
rad[y] = x;
if(h[x] == h[y])
h[x]++;
}
else if(kok(x) == kok(y))
printf("DA\n");
else
printf("NU\n");
}
}