Pagini recente » Cod sursa (job #2513333) | Cod sursa (job #433166) | Cod sursa (job #2817240) | Cod sursa (job #416286) | Cod sursa (job #416801)
Cod sursa(job #416801)
#include <cstdio>
#define nmax 100005
using namespace std;
int var, N, M, tata [nmax], tip, a,i, b;
void leaga (int x)
{
if (tata[x]==x)
{
var = x;
return ;
}
else leaga (tata [x]);
tata [x] = var;
}
void unite (int x, int y)
{
leaga (x);
leaga (y);
tata [tata [y]] = tata [x];
}
int main ()
{
freopen ("disjoint.in", "r", stdin);
freopen ("disjoint.out", "w", stdout);
scanf ("%d%d\n", &N, &M);
for (i = 1; i <= N; i++) tata [i] = i;
for (i = 1; i <= M; i++)
{
scanf ("%d%d%d\n", &tip, &a, &b);
if (tip == 1) unite (a, b);
if (tip == 2)
{
leaga (a);
leaga (b);
if (tata [a] == tata [b]) printf ("DA\n");
else printf ("NU\n");
}
}
return 0;
}