Pagini recente » Cod sursa (job #2549897) | Cod sursa (job #1127000) | Cod sursa (job #2724097) | Cod sursa (job #2084702) | Cod sursa (job #624294)
Cod sursa(job #624294)
#include <cstdio>
#define N 100003
using namespace std;
int n, m, a, x, y, tata[N];
int reunim(int nod)
{
if (tata[nod] == nod)
return nod;
return tata[nod] = reunim (tata[nod]);
}
bool verif(int x, int y)
{
if (tata[y] == y && x != y)
return false;
if (tata[y] == tata[x])
return true;
return verif (x, tata[y]);
}
void pune()
{
for (int i = 1; i <= n; ++ i)
tata[i] = i;
}
int main()
{
freopen ("disjoint.in", "r", stdin);
freopen ("disjoint.out", "w", stdout);
scanf ("%d %d ", &n, &m);
pune();
for (int i = 1; i <= m; ++ i)
{
scanf ("%d %d %d ", &a, &x, &y);
if (a == 1)
tata[y] = reunim (x);
else
{
if (verif(x, y))
printf ("DA\n");
else
printf ("NU\n");
}
}
return 0;
}