Pagini recente » Cod sursa (job #1482187) | Cod sursa (job #2645384) | Cod sursa (job #2392873) | Cod sursa (job #639283) | Cod sursa (job #1705462)
#include <iostream>
#include <stdio.h>
int get_root(int node, int p[]) {
while (node != p[node]) {
node = p[node];
}
return node;
}
int main() {
FILE *fin = fopen("disjoint.in", "r");
FILE *fout = fopen("disjoint.out", "w");
int n, m, op, x, y;
fscanf(fin, "%d %d", &n, &m);
int parent[n + 1];
for (int i = 1; i <= n; i++) {
parent[i] = i;
}
for (int i = 0; i < m; i++) {
fscanf(fin, "%d %d %d", &op, &x, &y);
if (op == 1) {
parent[get_root(y, parent)] = get_root(x, parent);
}
else if (op == 2) {
if (get_root(x, parent) == get_root(y, parent)) {
fprintf(fout, "DA\n");
}
else {
fprintf(fout, "NU\n");
}
}
}
fclose(fin);
fclose(fout);
}