Pagini recente » Cod sursa (job #70743) | Cod sursa (job #766882) | Cod sursa (job #1171266) | Cod sursa (job #430224) | Cod sursa (job #2956752)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int n; in >> n;
vector<vector<int>> mat(n, vector<int>(n));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
in >> mat[i][j];
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (mat[i][j] == 0) {
mat[i][j] = 1e9;
}
}
}
for (int k = 0; k < n; ++k) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (i != j && j != k && i != k)
mat[i][j] = min(mat[i][j], mat[i][k] + mat[k][j]);
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (mat[i][j] == 1e9) {
mat[i][j] = 0;
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
out << mat[i][j] << " ";
}
out << endl;
}
return 0;
}