Pagini recente » Borderou de evaluare (job #2829817) | Cod sursa (job #260579) | Cod sursa (job #2594026) | Cod sursa (job #443273) | Cod sursa (job #2115913)
#include <bits/stdc++.h>
using namespace std;
vector<int> v(100001);
int root(int x) {
if (v[x] == x) return x;
return v[x] = root(v[x]);
}
void join(int x, int y) {
v[root(x)] = root(y);
}
bool query(int x, int y) {
return root(x) == root(y);
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
int n, m;
cin >> n >> m;
for (int i = 0; i <= n; i++) {
v[i] = i;
}
int op, x, y;
for (int i = 0; i < m; i++) {
cin >> op >> x >> y;
switch (op) {
case 1:
join(x, y);
break;
case 2:
if (query(x, y)) {
cout << "DA\n";
} else {
cout << "NU\n";
}
break;
}
}
return 0;
}