Pagini recente » Cod sursa (job #1348238) | Cod sursa (job #2306892) | Cod sursa (job #2885256) | Cod sursa (job #2294714) | Cod sursa (job #2947991)
// Mihai Priboi
#include <stdio.h>
#define MAXN 100
#define INF 1'000'000'000
int n;
int mat[MAXN][MAXN];
int main() {
FILE *fin, *fout;
int i, j, k;
fin = fopen("royfloyd.in", "r");
fscanf(fin, "%d", &n);
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
fscanf(fin, "%d", &mat[i][j]);
if(mat[i][j] == 0)
mat[i][j] = INF;
}
}
fclose(fin);
for(k = 0; k < n; k++)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(mat[i][j] > mat[i][k] + mat[k][j])
mat[i][j] = mat[i][k] + mat[k][j];
fout = fopen("royfloyd.out", "w");
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
if(mat[i][j] == INF || i == j)
fprintf(fout, "0 ");
else
fprintf(fout, "%d ", mat[i][j]);
}
fprintf(fout, "\n");
}
fclose(fout);
return 0;
}