Pagini recente » Cod sursa (job #603157) | Cod sursa (job #1835234) | Cod sursa (job #2032171) | Cod sursa (job #1759054) | Cod sursa (job #1689614)
#include <iostream>
#include <cstdio>
#define MAXN 100050
using namespace std;
int parent[MAXN], n, m;
int getRoot(int x)
{
if (parent[x] == x) return x;
int y = getRoot(parent[x]);
return parent[x] = y;
}
void unite(int x, int y)
{
parent[getRoot(x)] = getRoot(y);
}
int check(int x, int y)
{
return getRoot(x) == getRoot(y);
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d %d", &n, &m);
int tip, x, y;
for (int i = 1; i <= n; i++) parent[i] = i;
for (int i = 1; i <= m; i++) {
scanf("%d %d %d", &tip, &x, &y);
if (tip == 1)
unite(x, y);
else
printf("%s\n", check(x, y) ? "DA" : "NU");
}
return 0;
}