Pagini recente » Cod sursa (job #600846) | Cod sursa (job #733303) | Cod sursa (job #1143893) | Cod sursa (job #849505) | Cod sursa (job #2712291)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int NMax = 100, oo = 0x3f3f3f3f;
int n;
int dp[NMax + 5][NMax + 5];
void Read(){
fin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++){
fin >> dp[i][j];
if (!dp[i][j] && i != j)
dp[i][j] = oo;
}
}
void RoyFloyd(){
for (int k = 1; k <= n; k++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
}
void Print(){
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
if (!dp[i][j] && i != j)
dp[i][j] = 0;
fout << dp[i][j] << ' ';
}
fout << '\n';
}
}
int main(){
Read();
RoyFloyd();
Print();
return 0;
}