Pagini recente » Cod sursa (job #116520) | Cod sursa (job #2425583)
#include <cstdio>
using namespace std;
const int INFI = 0x3f3f3f;
const int NMAX = 105;
int V[ NMAX ][ NMAX ];
int main () {
freopen( "royfloyd.in", "r", stdin );
freopen( "royfloyd.out", "w", stdout );
int n, i, j, k;
scanf( "%d", &n );
for ( i = 1; i <= n; ++i ) {
for ( j = 1; j <= n; ++j ) {
scanf( "%d", &V[ i ][ j ] );
if ( V[ i ][ j ] == 0 )
V[ i ][ j ] = INFI;
}
}
for ( k = 1; k <= n; ++k ) {
for ( i = 1; i <= n; ++i ) {
for ( j = 1; j <= n; ++j ) {
if ( V[ i ][ j ] < INFI && V[ i ][ j ] > V[ i ][ k ] + V[ k ][ j ] ) {
V[ i ][ j ] = V[ i ][ k ] + V[ k ][ j ];
}
}
}
}
for ( i = 1; i <= n; ++i ) {
for ( j = 1; j <= n; ++j ) {
printf( "%d ", (V[ i ][ j ]< INFI) ? V[ i ][ j ] : ( 0 ) );
}
printf( "\n" );
}
return 0;
}