Pagini recente » Cod sursa (job #1053308) | Cod sursa (job #2354687) | Cod sursa (job #1830553) | Cod sursa (job #1468622) | Cod sursa (job #2757204)
#include <cstdio>
#include <vector>
using namespace std;
vector<int> parent;
int findParent(int k) {
if (parent[k] != k)
parent[k] = findParent(parent[k]);
return parent[k];
}
void Unite(int x, int y) {
x = findParent(x);
y = findParent(y);
parent[y] = x;
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int N, M;
scanf("%d%d", &N, &M);
parent.resize(N + 1);
for (int i = 1; i <= N; ++i)
parent[i] = i;
int op, x, y;
for (int t = 0; t < M; ++t) {
scanf("%d%d%d", &op, &x, &y);
if (op == 1) {
Unite(x, y);
continue;
}
if (findParent(x) == findParent(y))
printf("DA\n");
else
printf("NU\n");
}
return 0;
}