Pagini recente » Cod sursa (job #335322) | Cod sursa (job #318590) | Cod sursa (job #2491711) | Cod sursa (job #1747096) | Cod sursa (job #2507358)
#include <stdio.h>
#include <stdlib.h>
int tata[100001];
int n, m;
int find(int x) {
int i;
if (tata[x] == x) {
return x;
} else {
return find(tata[x]);
}
}
void uniune(int x, int y) {
int sefx, sefy;
sefx = find(x);
sefy = find(y);
tata[sefx] = sefy;
}
int main()
{
FILE*in = fopen("disjoint.in", "r");
FILE*out = fopen("disjoint.out", "w");
int n, m, i, c, x, y;
fscanf(in, "%d%d", &n, &m);
for (i = 0; i < n; i++) {
tata[i] = i;
}
for (i = 0; i < m; i++) {
fscanf(in, "%d%d%d", &c, &x, &y);
if (c == 1) {
uniune(x, y);
} else {
if (find(x) == find(y)) {
fprintf(out, "DA\n");
} else {
fprintf(out, "NU\n");
}
}
}
return 0;
}