Pagini recente » Cod sursa (job #2739303) | Cod sursa (job #1205338) | Cod sursa (job #3155565) | Cod sursa (job #3233739) | Cod sursa (job #348311)
Cod sursa(job #348311)
#include <stdio.h>
#define DIM 100001
int T[DIM];
int n,m,i,x,y,cod;
FILE *f = fopen("disjoint.in","r");
FILE *g = fopen("disjoint.out","w");
void reuneste(int x, int y) {
int i,j;
i = x;
while (T[i]>0)
i = T[i];
j = y;
while (T[j]>0)
j = T[j];
if (T[i]>T[j]) {
T[j] += T[i];
T[i] = j;
}
else {
T[i] += T[j];
T[j] = i;
}
}
void intreaba (int x, int y) {
int i,j;
i = x;
while (T[i]>0)
i = T[i];
j = y;
while (T[j]>0)
j = T[j];
if (i==j)
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
int main() {
fscanf(f,"%d%d",&n,&m);
for (i=1; i<=n; i++)
T[i] = -1;
for (i=1; i<=m; i++) {
fscanf(f,"%d%d%d",&cod,&x,&y);
if (cod==1)
reuneste(x,y);
else
intreaba(x,y);
}
fclose(f);
fclose(g);
return 0;
}