Pagini recente » Cod sursa (job #931707) | Cod sursa (job #1579530) | Cod sursa (job #806781) | Cod sursa (job #2583410) | Cod sursa (job #2507577)
#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 {
tata[x] = find(tata[x]);
return 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;
}