Cod sursa(job #390732)
#include <stdio.h>
#define Nmax 105
int a[Nmax][Nmax];
int i, j, k, n;
int main () {
FILE * f = fopen ("royfloyd.in", "r");
FILE * g = fopen ("royfloyd.out", "w");
fscanf (f, "%d", &n);
for (i = 1 ; i <= n ; i++)
for (j = 1 ; j <= n ; j++)
fscanf (f, "%d", &a[i][j]);
for (k = 1 ; k <= n ; k++)
for (i = 1 ; i <= n ; i++)
for (j = 1 ; j <= n ; j++)
if ( a[i][k] && a[k][j] && i != j && (a[i][j] > a[i][k] + a[k][j] || a[i][j] == 0 ) )
a[i][j] = a[i][k] + a[k][j];
for (i = 1 ; i <= n ; i++){
for (j = 1 ; j <= n ; j++)
fprintf (g, "%d ", a[i][j]);
fprintf(g, "\n");
}
fclose(f);
fclose(g);
return 0;
}