Pagini recente » Istoria paginii runda/simulare_oji_2020_1/clasament | Istoria paginii runda/pascaliada/clasament | Cod sursa (job #2106691) | Cod sursa (job #267792) | Cod sursa (job #1411900)
#include <iostream>
#include <fstream>
int m[100][100];
std::ifstream input("royfloyd.in");
std::ofstream output("royfloyd.out");
void display( int (*m)[100], int n )
{
for ( int i = 0; i < n; ++i )
{
for ( int j = 0; j < n; ++j )
{
output << m[i][j] << " ";
}
output << std::endl;
}
}
int main( int argc, char* argv[] )
{
int N;
input >> N;
for ( int i = 0; i < N; ++i )
{
for ( int j = 0; j < N; ++j )
{
input >> m[i][j];
}
}
for ( int k = 0; k < N; ++k )
{
for ( int i = 0; i < N; ++i )
{
for ( int j = 0; j < N; ++j )
{
if ( i != j && i != k && k != j && m[i][k] && m[k][j] )
{
if ( m[i][j] > m[i][k] + m[k][j] || !m[i][j] )
{
m[i][j] = m[i][k] + m[k][j];
}
}
}
}
}
display( m, N );
input.close();
output.close();
}