Pagini recente » Cod sursa (job #977761) | Profil andreeacristiana | Istoria paginii utilizator/versinmadalina | Cod sursa (job #2436474) | Cod sursa (job #1705936)
#include <iostream>
#include <fstream>
#define MAX 101
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] )
{
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];
}
}
floyd_warshall();
for( unsigned int i = 1; i <= n; ++i )
{
for( unsigned int j = 1; j <= n; ++j )
{
std::cout << m[i][j] << ' ';
}
std::cout << "\n";
}
fclose( stdin );
fclose( stdout );
}