Pagini recente » Cod sursa (job #1000465) | Cod sursa (job #2914611) | Cod sursa (job #3210756) | Cod sursa (job #899911) | Cod sursa (job #2639000)
#include <fstream>
using namespace std;
ifstream fin( "royfloyd.in" );
ofstream fout( "royfloyd.out" );
const int MaxN = 101;
int m[MaxN][MaxN];
static inline void royfloyd( int n ) {
for ( int k = 1; k <= n; ++k ) {
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
if ( m[i][k] != 0 && m[k][j] != 0 && (m[i][k] + m[k][j] < m[i][j] || m[i][j] == 0) ) {
m[i][j] = m[i][k] + m[k][j];
}
}
}
}
}
int main() {
int n;
fin >> n;
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
fin >> m[i][j];
}
}
royfloyd( n );
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
if ( i == j ) {
fout << "0 ";
} else {
fout << m[i][j] << " ";
}
}
fout << "\n";
}
fin.close();
fout.close();
return 0;
}