Cod sursa(job #211447)
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 101
#define INF 0x3f3f3f3f
int N;
int A[MAXN][MAXN];
void read (){
scanf ("%d\n", &N);
for (int i = 1; i <= N; ++ i)
for (int j = 1; j <= N; ++ j){
scanf ("%d ", &A[i][j]);
if (!A[i][j] && i != j) A[i][j] = INF;
}
}
void solve (){
for (int k = 1; k <= N; ++ k)
for (int i = 1; i <= N; ++ i)
for (int j = 1; j <= N; ++ j)
A[i][j] = min (A[i][j], A[i][k] + A[k][j]);
for (int i = 1; i <= N; ++ i){
for (int j = 1; j <= N; ++ j)
printf ("%d ", A[i][j]);
printf ("\n");
}
}
int main (){
freopen ("royfloyd.in", "r", stdin);
freopen ("royfloyd.out", "w", stdout);
read ();
solve ();
return 0;
}