Pagini recente » Cod sursa (job #1277193) | Cod sursa (job #2740718) | Cod sursa (job #522933) | Cod sursa (job #2090851) | Cod sursa (job #1834929)
#include<stdio.h>
#include<stdlib.h>
int main() {
int n;
int **d;
int i, j, k;
FILE* fi = fopen("royfloyd.in", "r");
FILE* fo = fopen("royfloyd.out", "w");
fscanf(fi, "%d", &n);
d = (int**) malloc (n * sizeof (int*));
for (i = 0; i < n; i++) {
d[i] = (int*) calloc (n , sizeof(int));
}
int a;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
fscanf(fi, "%d", &a);
if (i != j && a == 0)
d[i][j] = 1000000000;
else
d[i][j] = a;
}
/*for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%d ", d[i][j]);
printf("\n");
}*/
for (k = 0; k < n; k++) {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (d[i][k] + d[k][j] < d[i][j])
d[i][j] = d[i][k] + d[k][j];
}
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
fprintf(fo, "%d ", d[i][j]);
fprintf(fo, "\n");
}
fclose(fi);
fclose(fo);
return 0;
}