Pagini recente » Cod sursa (job #1799114) | Cod sursa (job #2674953) | Cod sursa (job #1296705) | Monitorul de evaluare | Cod sursa (job #2431279)
#include <fstream>
#include <vector>
#include <assert.h>
int main() {
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
short n;
in >> n;
assert(1 <= n && n <= 100);
std::vector<std::vector<short>> a(n + 1, std::vector<short>(n + 1));
for (int i = 1 ; i <= n ; ++i) {
for (int j = 1 ; j <= n ; ++j) {
in >> a[i][j];
}
}
for (int k = 1 ; k <= n ; ++k) {
for (int i = 1 ; i <= n ; ++i) {
for (int j = 1 ; j <= n ; ++j) {
a[i][j] = std::min(a[i][j], short(a[i][k] + a[k][j]));
}
}
}
for (int i = 1 ; i <= n ; ++i) {
for (int j = 1 ; j <= n ; ++j) {
out << a[i][j] << " ";
}
out << '\n';
}
return 0;
}