Pagini recente » Cod sursa (job #3362163) | Cod sursa (job #3362137) | Cod sursa (job #3361754) | Monitorul de evaluare | Cod sursa (job #3361811)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
inline string yes_no(bool x) {
if (x) {
return "DA";
} else {
return "NU";
}
}
struct DSU {
vector<int> parent;
DSU(int N) : parent(N, -1) {}
void join(int a, int b) {
parent[a] = b;
}
int get(int i) {
if (parent[i] == -1) {
return i;
}
parent[i] = get(parent[i]);
return parent[i];
}
};
int main() {
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int N, Q;
fin >> N >> Q;
DSU dsu(N);
for (int q = 0; q < Q; ++q) {
int op, a, b;
fin >> op >> a >> b;
if (op == 1) {
dsu.join(a-1, b-1);
} else if (op == 2) {
fout << yes_no(dsu.get(a-1) == dsu.get(b-1)) << '\n';
}
}
return 0;
}