Pagini recente » Monitorul de evaluare | Atasamentele paginii Clasament cartof123 | Cod sursa (job #1705938) | Statistici Diana Elena (DianaEllena) | Cod sursa (job #1705941)
#include <iostream>
#include <fstream>
#include <algorithm>
#define MAX 101
#define INF 9999
unsigned int n;
int m[MAX][MAX];
void floyd_warshall()
{
for( unsigned int k = 1; k <= n; ++k )
{
for( unsigned int i = 1; i <= n; ++i )
{
for( unsigned int j = 1; j <= n; ++j )
{
/*
if ( ( m[i][j] > m[i][k] + m[k][j] ) && ( i != j ) )
{
m[i][j] = m[i][k] + m[k][j];
}
*/
if( i != j )
{
m[i][j] = std::min(m[i][j], m[i][k] + m[k][j]);
}
}
}
}
}
int main( void )
{
freopen( "royfloyd.in", "r", stdin );
freopen( "royfloyd.out", "w", stdout );
std::cin >> n;
for( unsigned int i = 1; i <= n; ++i )
{
for( unsigned int j = 1; j <= n; ++j )
{
std::cin >> m[i][j];
if( m[i][j] == 0 )
{
m[i][j] = INF;
}
}
}
floyd_warshall();
for( unsigned int i = 1; i <= n; ++i )
{
for( unsigned int j = 1; j <= n; ++j )
{
if( m[i][j] == INF )
std::cout << 0 << ' ';
else
std::cout << m[i][j] << ' ';
}
std::cout << "\n";
}
fclose( stdin );
fclose( stdout );
}