Pagini recente » Cod sursa (job #512457) | Cod sursa (job #1308777) | Cod sursa (job #957855) | Cod sursa (job #2656264) | Cod sursa (job #2311404)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n, m;
vector<int> nums;
void join(int x, int y) {
int min = nums[x] < nums[y] ? nums[x] : nums[y];
nums[x] = min;
nums[y] = min;
}
bool joined(int x, int y) {
while (nums[x] != x) {
x = nums[x];
}
while (nums[y] != y) {
y = nums[y];
}
return x == y;
}
int main() {
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m; fin >> n >> m;
nums = vector<int>(n);
for (int i = 0; i < n; i++) {
nums[i] = i;
}
for (int i = 0; i < m; i++) {
int op, a, b; fin >> op >> a >> b;
if (op == 1) {
join(a - 1, b - 1);
} else {
if (joined(a - 1, b - 1)) {
fout << "DA\n";
} else {
fout << "NU\n";
}
}
}
return 0;
}