Pagini recente » Cod sursa (job #641150) | Cod sursa (job #2206464) | Cod sursa (job #1603778) | Cod sursa (job #2344149) | Cod sursa (job #1425183)
#include <iostream>
#include <fstream>
#define MAX ((1 << 29) - 1)
int min (int a, int b) { return a < b ? a : b; }
int cost[100][100];
int main() {
std::ifstream fin ("royfloyd.in");
std::ofstream fout ("royfloyd.out");
int dimension, element;
fin >> dimension;
for (int i = 0; i < dimension; ++i) {
for (int j = 0; j < dimension; ++j) {
fin >> element;
if (element == 0 && i != j) {
cost[i][j] = MAX;
} else {
cost[i][j] = element;
}
}
}
for (int k = 0; k < dimension; ++k) {
for (int i = 0; i < dimension; ++i) {
for (int j = 0; j < dimension; ++j) {
cost[i][j] = min (cost[i][j], cost[i][k] + cost[k][j]);
}
}
}
for (int i = 0; i < dimension; ++i) {
for (int j = 0; j < dimension; ++j) {
fout << cost[i][j] << " ";
}
fout << "\n";
}
}