Pagini recente » Cod sursa (job #1664737) | Cod sursa (job #3192634) | Cod sursa (job #1780677) | Cod sursa (job #23626) | Cod sursa (job #3231421)
#include <fstream>
using namespace std;
const int NMax = 100;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int D[NMax + 5][NMax + 5];
int main()
{
int N;
fin >> N;
for(int i = 1; i <= N; ++ i){
for(int j = 1; j <= N; ++ j){
fin >> D[i][j];
}
}
for(int k = 1; k <= N; ++ k){
for(int i = 1; i <= N; ++ i){
for(int j = 1; j <= N; ++ j){
if(i != j){
if(D[i][j] > 0){
D[i][j] = min(D[i][j], D[i][k] + D[k][j]);
}
else if(D[i][k] > 0 && D[k][j] > 0){
D[i][j] = D[i][k] + D[k][j];
}
}
}
}
}
for(int i = 1; i <= N; ++ i){
for(int j = 1; j <= N; ++ j){
fout << D[i][j] << ' ';
}
fout << '\n';
}
return 0;
}