#include <stdio.h>
#include "windows.h"
#define MaxVertex 6
#define INF 210000000
#define N 4
void floyd(int matrix[N][N], int n) {
for (int i = 0; i < N; ++i)
for (int j = 0; j < n; ++j)
for (int k = 0; k < n; ++k)
matrix[j][k] = min(matrix[i][k]+matrix[j][i],matrix[j][k]);
}
int main() {
int matrix[N][N] = {{0, 1, INF, INF},
{4, 0, INF, 5},
{INF, 2, 0, INF},
{3, INF, 7, 0}};
floyd(matrix, N);
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j)
printf("%d ", matrix[i][j]);
putchar('\n');
}
}