Pagini recente » Cod sursa (job #2737862) | Cod sursa (job #1632811) | Cod sursa (job #2888369) | Cod sursa (job #1265323) | Cod sursa (job #954454)
Cod sursa(job #954454)
#include <cstdio>
#include <cstring>
using namespace std;
const long N = 110, INF = 200000000;
long a [N][N], n, dp [N][N];
void read (){
long i, j;
scanf ("%ld", &n);
memset (dp, -1, sizeof (dp));
for (i = 1; i <= n; i ++){
for (j = 1; j <= n; j ++) {
scanf ("%ld", &a [i][j]);
dp [i][j] = a [i][j];
if (a [i][j] == 0)
a [i][j] = INF;
}
dp [i][i] = 0;
}
}
void solve (){
long i, j, k;
for (k = 1; k <= n; k ++)
for (i = 1; i <= n; i ++)
for (j = 1; j <= n; j ++)
if (dp [i][k] + dp [k][j] < dp [i][j])
dp [i][j] = dp [i][k] + dp [k][j];
for (i = 1; i <= n; i ++){
for (j = 1; j <= n; j ++)
printf ("%ld ", dp [i][j]);
printf ("\n");
}
}
int main (){
freopen ("royfloyd.in", "r", stdin);
freopen ("royfloyd.out", "w", stdout);
read ();
solve ();
return 0;
}