Pagini recente » Cod sursa (job #1735994) | Cod sursa (job #2156169) | Cod sursa (job #1792590) | Cod sursa (job #2129728) | Cod sursa (job #1482032)
#include <fstream>
#include <algorithm>
const int MAX_N = 100;
const char IN [ ] = "royfloyd.in" ;
const char OUT [ ] = "royfloyd.out" ;
const int INF = 0x3F3F3F3F;
using namespace std;
ifstream cin ( IN );
ofstream cout ( OUT );
int a [ MAX_N ][ MAX_N ];
int main ( void )
{
cin.tie ( 0 );
ios_base :: sync_with_stdio ( 0 );
int n;
cin >> n;
for ( int i = 0; i < n; i ++ )
{
for ( int j = 0; j < n; j ++ )
{
cin >> a [ i ][ j ];
a [ i ][ j ] ^= ( INF & - ( !a [ i ][ j ] ) );
}
}
cin.close ( );
for ( int k = 0; k < n; k ++ )
{
for ( int i = 0; i < n; i ++ )
{
for ( int j = 0; j < i; j ++ )
{
if ( a [ i ][ k ] != INF && a [ k ][ j ] != INF )
a [ i ][ j ] = min ( a [ i ][ j ], a [ i ][ k ] + a [ k ][ j ] );
}
for ( int j = i + 1; j < n; j ++ )
{
if ( a [ i ][ k ] != INF && a [ k ][ j ] != INF )
a [ i ][ j ] = min ( a [ i ][ j ], a [ i ][ k ] + a [ k ][ j ] );
}
}
}
for ( int i = 0; i < n; i ++ )
{
for ( int j = 0; j < n; j ++ )
cout << ( a [ i ][ j ] & - ( a [ i ][ j ] != INF ) ) << ' ';
cout << '\n';
}
cout.close ( );
return 0;
}