Pagini recente » Cod sursa (job #1135425) | Cod sursa (job #269295) | Cod sursa (job #2758567) | Cod sursa (job #366674) | Cod sursa (job #2294029)
#include <fstream>
#define INF ((1 << 30) - 1)
int main() {
int nNodes, i, j, k;
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
in >> nNodes;
int costs[nNodes][nNodes];
for (i = 0; i < nNodes; ++i) {
for (j = 0; j < nNodes; ++j) {
in >> costs[i][j];
if ((!costs[i][j]) && (i != j)) {
costs[i][j] = INF;
}
}
}
for (k = 0; k < nNodes; ++k) {
for (i = 0; i < nNodes; ++i) {
for (j = 0; j < nNodes; j++) {
if((costs[i][j] > costs[i][k] + costs[k][j])) {
costs[i][j] = costs[i][k] + costs[k][j];
}
}
}
}
for (i = 0; i < nNodes; ++i) {
for (j = 0; j < nNodes; ++j) {
if (costs[i][j] == INF) {
costs[i][j] = 0;
}
out << costs[i][j] << " ";
}
out << "\n";
}
return 0;
}