Pagini recente » Cod sursa (job #2708367) | Cod sursa (job #175298) | Cod sursa (job #2301216) | Cod sursa (job #97877) | Cod sursa (job #1395832)
#include <stdio.h>
#include <stdlib.h>
#define MAX 100002
int sef[MAX];
int main() {
FILE *fin, *fout;
fin = fopen("disjoint.in", "r");
fout = fopen("disjoint.out", "w");
int n, m;
fscanf(fin, "%d%d", &n, &m);
int i, j, k;
int cod, x, y;
for(i = 1;i <= n;i++)
sef [i] = i;
for(i = 0;i < m;i++) {
fscanf(fin, "%d%d%d", &cod, &x, &y);
if(cod == 1) {
j = x;
while(sef[j] != j)
j = sef[j];
sef[x] = j;
sef[y] = j;
}
else {
j = x;
while(sef[j] != j)
j = sef[j];
k = y;
while(sef[k] != k)
k = sef[k];
if(j == k)
fprintf(fout, "DA\n");
else
fprintf(fout, "NU\n");
}
}
fclose(fin);
fclose(fout);
return 0;
}