Pagini recente » Cod sursa (job #362862) | Cod sursa (job #3259593) | Cod sursa (job #1591877) | info-arena 2.0 | Cod sursa (job #1397774)
#include <cstdio>
using namespace std;
#define MAXN 100010
int TT[MAXN];
int N, M;
int find(int x) {
if (TT[x] == x)
return x;
else
return TT[x] = find(TT[x]);
}
void unite(int x, int y) {
TT[find(y)] = find(x);
}
int main()
{
freopen("disjoint.in", "r", stdin);
//freopen("disjoint.out", "w", stdout);
scanf("%d %d", &N, &M);
int i, t, x, y;
for (i = 1; i <= N; i++) {
TT[i] = i;
}
while (M--) {
scanf("%d %d %d", &t, &x, &y);
if (t == 1) {
unite(x, y);
} else if (t == 2) {
printf("%s\n", (find(x) == find(y) ? "DA" : "NU"));
}
}
return 0;
}