Pagini recente » Cod sursa (job #2550248) | Istoria paginii utilizator/dumitru.florin | Cod sursa (job #2495597) | Cod sursa (job #2428838) | Cod sursa (job #2966098)
//disjoint
#include <fstream>
#include <vector>
using namespace std;
vector<int> parent;
int find(int x) {
if (parent[x] != x)
parent[x] = find(parent[x]);
return parent[x];
}
int main() {
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n, m;
cin >> n >> m;
parent.resize(n + 1);
for (int i = 1; i <= n; i++)
parent[i] = i;
while (m--) {
int op, x, y;
cin >> op >> x >> y;
if (op == 1) {
int u = find(x), v = find(y);
if (u != v)
parent[u] = v;
} else {
if (find(x) == find(y))
cout << "DA" << endl;
else
cout << "NU" << endl;
}
}
return 0;
}