Pagini recente » Cod sursa (job #2578489) | Cod sursa (job #2513134) | Cod sursa (job #1324356) | Cod sursa (job #230288) | Cod sursa (job #2773250)
#include <fstream>
#include <cmath>
const int MAX_N = 101;
int n;
int dp[MAX_N][MAX_N];
void read()
{
std::ifstream input("royfloyd.in");
input >> n;
for (int row(1); row <= n; ++row) {
for (int col(1); col <= n; ++col) {
input >> dp[row][col];
}
}
input.close();
}
void print()
{
std::ofstream output("royfloyd.out");
for (int row(1); row <= n; ++row) {
for (int col(1); col <= n; ++col) {
output << dp[row][col] << ' ';
}
output.put('\n');
}
output.close();
}
void royfloyd()
{
for (int k(1); k <= n; ++k) {
for (int i(1); i <= n; ++i) {
for (int j(1); j <= n; ++j) {
if (dp[i][k] && dp[k][j] && i != j && (!dp[i][j] || dp[i][k] + dp[k][j] < dp[i][j])) {
dp[i][j] = dp[i][k] + dp[k][j];
}
}
}
}
}
int main()
{
read();
royfloyd();
print();
return 0;
}