Pagini recente » Cod sursa (job #3323780) | Cod sursa (job #3340253) | Cod sursa (job #1400554) | Cod sursa (job #3337897) | Cod sursa (job #3350962)
#include <bits/stdc++.h>
std::ifstream fin("royfloyd.in");
std::ofstream fout("royfloyd.out");
const long long INF = LLONG_MAX / 2;
const int NMAX = 101;
std::vector<std::vector<long long>> D(NMAX, std::vector<long long>(NMAX, INF));
int main() {
int n;
fin >> n;
for(int k = 1; k <= n; ++k) {
for(int i = 1; i <= n; ++i) {
fin >> D[k][i];
if(D[k][i] == 0)
D[k][i] = INF;
}
}
for(int k = 1; k <= n; ++k) {
D[k][k] = 0;
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= n; ++j) {
D[i][j] = std::min(D[i][j], D[i][k] + D[k][j]);
}
}
}
for(int i = 1; i <= n; ++i, fout << '\n')
for(int j = 1; j <= n; ++j)
fout << (D[i][j] == INF ? 0 : D[i][j]) << ' ';
return 0;
}