Pagini recente » Cod sursa (job #359674) | Cod sursa (job #53950) | Cod sursa (job #2013922) | Cod sursa (job #845170) | Cod sursa (job #409439)
Cod sursa(job #409439)
#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;
}