Pagini recente » Cod sursa (job #324127) | Cod sursa (job #2798011) | Cod sursa (job #2375494) | Cod sursa (job #1802) | Cod sursa (job #156365)
Cod sursa(job #156365)
#include <stdio.h>
#include <limits.h>
#define NMAX 100
#define INF INT_MAX
int n;
int A[NMAX][NMAX];
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
scanf("%d", &n);
int i, j;
for (i = 0; i < n; ++ i)
for (j = 0; j < n; ++ j) {
scanf("%d", &A[i][j]);
if (A[i][j] == 0)
A[i][j] = INF;
}
int k;
for (k = 0; k < n; ++ k)
for (i = 0; i < n; ++ i)
for (j = 0; j < n; ++ j) {
if (A[i][k] == INF || A[k][j] == INF)
continue;
if (A[i][j] > A[i][k] + A[k][j])
A[i][j] = A[i][k] + A[k][j];
}
for (i = 0; i < n; ++ i) {
for (j = 0; j < n; ++ j)
if (A[i][j] == INF || i == j)
printf("0 ");
else
printf("%d ", A[i][j]);
printf("\n");
}
return 0;
}