Pagini recente » Cod sursa (job #3350415) | Cod sursa (job #539437) | Cod sursa (job #205108) | Diferente pentru problema/calc intre reviziile 1 si 2 | Cod sursa (job #3302973)
#include <fstream>
using namespace std;
int dp[105][105];
int main(){
int n, i, j, k;
ifstream fin( "royfloyd.in" );
ofstream fout( "royfloyd.out" );
fin >> n;
for( i = 0; i < n; i++ ){
for( j = 0; j < n; j++ ){
fin >> dp[i][j];
if( dp[i][j] == 0 ){
dp[i][j] = INT32_MAX / 2;
}
}
}
for( k = 0; k < n; k++ ){
for( i = 0; i < n; i++ ){
for( j = 0; j < n; j++ ){
dp[i][j] = min( dp[i][k] + dp[k][j], dp[i][j] );
}
}
}
for( i = 0; i < n; i++ ){
for( j = 0; j < n; j++ ){
if( i == j || dp[i][j] >= INT32_MAX / 2 ){
dp[i][j] = 0;
}
fout << dp[i][j] << ' ';
}
fout << '\n';
}
return 0;
}