Pagini recente » Cod sursa (job #2739716) | Cod sursa (job #2077916) | Cod sursa (job #976873) | Cod sursa (job #2784153) | Cod sursa (job #2924520)
#include <iostream>
#include<vector>
using namespace std;
class DSU {
public:
int N;
vector<int> parent;
void init(int n) {
N = n;
parent.resize(n + 1);
for (int i = 1; i <= n; i++)
parent[i] = i;
}
int find(int u) {
if (u == parent[u])
return u;
return parent[u] = find(parent[u]);
}
void unit(int u, int v) {
u = find(u);
v = find(v);
if (u == v)
return;
if (u > v)
swap(u, v);
parent[v] = u;
}
};
int main()
{
DSU dsu;
int n, m, i, u, v, t;
cin >> n >> m;
dsu.init(n);
for (i = 0; i < m; i++) {
cin >> t >> u >> v;
if (t == 1) {
dsu.unit(u, v);
}
else {
if (dsu.find(u) == dsu.find(v))
cout << "DA" << "\n";
else
cout << "NU" << "\n";
}
}
return 0;
}