Pagini recente » Cod sursa (job #83907) | Cod sursa (job #2554189) | Cod sursa (job #1904392) | Cod sursa (job #2954291) | Cod sursa (job #3121702)
#include <iostream>
#include <vector>
#include <fstream>
#include <climits>
const int INF = INT_MAX/2;
int main() {
std::ifstream fin("royfloyd.in");
std::ofstream fout("royfloyd.out");
int n;
fin >> n;
std::vector<std::vector<int>> adjacency_matrix(n, std::vector<int>(n, INF));
for(auto &line : adjacency_matrix) {
for(auto &el : line) {
fin >> el;
if(!el)
el=INF;
}
}
for(int i = 0; i<n; i++)
adjacency_matrix[i][i] = 0;
for(int k = 0; k<n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j<n; j++)
if(adjacency_matrix[i][j] > adjacency_matrix[i][k] + adjacency_matrix[k][j])
adjacency_matrix[i][j] = adjacency_matrix[i][k] + adjacency_matrix[k][j];
for(auto const& line : adjacency_matrix) {
for(auto el : line) {
fout << (el==INF ? 0 : el) << ' ';
}
fout << '\n';
}
return 0;
}