Pagini recente » Monitorul de evaluare | Profil M@2Te4i | Statistici Elisa Ipate (elisaipate) | Istoria paginii utilizator/iuliana3 | Cod sursa (job #2141714)
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *infile, *outfile;
int n, i, j, k;
int **m;
infile = fopen("royfloyd.in", "r");
outfile = fopen("royfloyd.out", "w");
fscanf(infile, "%d", &n);
m = malloc(n * sizeof(int*));
for (i = 0; i < n; i++)
m[i] = malloc(n * sizeof(int));
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
fscanf(infile, "%d", &m[i][j]);
for(k = 0; k < n; k++)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(m[i][j] > m[i][k] + m[k][j] && m[i][k] != 0 && m[k][j] != 0)
m[i][j] = m[i][k] + m[k][j];
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++)
fprintf(outfile, "%d ", m[i][j]);
fprintf(outfile, "\n");
}
fclose(infile);
fclose(outfile);
return 0;
}