Pagini recente » Cod sursa (job #1347624) | Cod sursa (job #1735684) | Cod sursa (job #1525592) | Cod sursa (job #1543471) | Cod sursa (job #2692834)
#include <fstream>
using namespace std;
ifstream fin( "royfloyd.in" );
ofstream fout( "royfloyd.out" );
const int nMax = 100;
int v[nMax][nMax];
int main() {
int n;
fin >> n;
for ( int i = 0; i < n; i++ ) {
for ( int j = 0; j < n; j++ ) {
fin >> v[ i ][ j ];
if ( v[ i ][ j ] == 0 && i != j )
v[ i ][ j ] = -1;
}
}
for ( int k = 0; k < n; k++ ) {
for ( int i = 0; i < n; i++ ) {
for ( int j = 0; j < n; j++ ) {
if ( v[ i ][ k ] > -1 && v[ k ][ j ] > -1 && ( v[ i ][ k ] + v[ k ][ j ] < v[ i ][ j ] || v[ i ][ j ] < 0 ) )
v[ i ][ j ] = v[ i ][ k ] + v[ k ][ j ];
}
}
}
for ( int i = 0; i < n; i++ ) {
for ( int j = 0; j < n; j++ ) {
if ( v[ i ][ j ] > -1 )
fout << v[ i ][ j ] << " ";
else
fout << "0 ";
}
fout << '\n';
}
fin.close();
fout.close();
return 0;
}