Pagini recente » Istoria paginii utilizator/lawrentiu | Cod sursa (job #2529468) | Cod sursa (job #2903399) | Cod sursa (job #2293114) | Cod sursa (job #2198092)
#include <fstream>
#include <vector>
#define INF (1 << 29)
int main() {
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
int i, j, k;
int n;
in >> n;
std::vector<std::vector<int>> d(n, std::vector<int>(n));
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
in >> d[i][j];
if (i != j && d[i][j] == 0) {
d[i][j] = INF;
}
}
}
for (k = 0; k < n; ++k) {
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
if (i != j) {
if (d[i][j] > d[i][k] + d[k][j]) {
d[i][j] = d[i][k] + d[k][j];
}
}
}
}
}
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
out << d[i][j] << ' ';
}
out << '\n';
}
in.close();
out.close();
return 0;
}