Pagini recente » Cod sursa (job #1477260) | runda_a_2-1 | Cod sursa (job #1045458) | Cod sursa (job #3162359) | Cod sursa (job #2542132)
#include <iostream>
#include <fstream>
#define NMAX 100
#define INF 1<<30
std::ifstream fin ( "royfloyd.in" );
std::ofstream fout ( "royfloyd.out" );
int dist[1 + NMAX][1 + NMAX];
int main() {
int N;
fin >> N;
for ( int x = 1; x <= N; ++x ) {
for ( int y = 1; y <= N; ++y ) {
fin >> dist[x][y];
if ( dist[x][y] == 0 && x != y )
dist[x][y] = INF;
}
}
for ( int k = 1; k <= N; ++k )
for ( int x = 1; x <= N; ++x )
for ( int y = 1; y <= N; ++y)
if ( dist[x][y] > dist[x][k] + dist[k][y] )
dist[x][y] = dist[x][k] + dist[k][y];
for ( int x = 1; x <= N; ++x ) {
for ( int y = 1; y <= N; ++y ) {
if ( dist[x][y] == INF )
dist[x][y] = 0;
fout << dist[x][y] << ' ';
}
fout << '\n';
}
return 0;
}