package a;
public class a5 {
static int m = 10000;
static int n=5;
public static void main(String[] args) {
int[][] a = { { 0, 2, m, 1, 8 },
{ 6, 0, 3, 2, m },
{ m, m, 0, 4, m },
{ m, m, 2, 0, 3 },
{ 3, m, m, m, 0 } };
for (int k = 0; k < n; ++k)
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
a[i][j]=a[i][j]>a[i][k]+a[k][j]?a[i][k]+a[k][j]:a[i][j];
//求i->到j的最短路,就是规划i->k,k->j的最短路
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (j > 0)
System.out.print(" ");
if (a[i][j] == m)
System.out.print("MAX");
else
System.out.format("%2d",a[i][j]);
}
System.out.println();
}
}
}