Pagini recente » Cod sursa (job #2980077) | Cod sursa (job #2323978) | Cod sursa (job #2890515) | Cod sursa (job #1542201) | Cod sursa (job #3192373)
#include <fstream>
#define DIM 100010
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, op, t, x, y;
int v[DIM];
int get_root(int x) {
if (v[x] < 0) {
return x;
}
return v[x] = get_root(v[x]);
}
void join(int x, int y) {
x = get_root(x);
y = get_root(y);
if (-v[x] < -v[y]) {
swap(x, y);
}
v[x] += v[y];
v[y] = x;
}
void query(int x, int y) {
if (get_root(x) == get_root(y)) {
fout << "DA" << "\n";
} else {
fout << "NU" << "\n";
}
}
int main() {
fin >> n >> op;
for (int i = 1; i <= n; i++) {
v[i] = -1;
}
for (int i = 1; i <= op; i++) {
fin >> t >> x >> y;
if (t == 1) {
join(x, y);
} else {
query(x, y);
}
}
return 0;
}