Pagini recente » Istoria paginii utilizator/niculae.radu | Cod sursa (job #1363915) | Cod sursa (job #2526047) | Istoria paginii runda/3_martie_simulare_oji_2024_clasele_11_12 | Cod sursa (job #3121692)
#include <iostream>
#include <vector>
#include <fstream>
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, 0));
for(auto &line : adjacency_matrix) {
for(auto &el : line) {
fin >> el;
}
}
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] && i!=j)
adjacency_matrix[i][j] = adjacency_matrix[i][k] + adjacency_matrix[k][j];
else if(adjacency_matrix[i][k] && adjacency_matrix[k][j] && i!=j)
adjacency_matrix[i][j] = std::min(adjacency_matrix[i][j], adjacency_matrix[i][k] + adjacency_matrix[k][j]);
for(auto const& line : adjacency_matrix) {
for(auto el : line) {
fout << el << ' ';
}
fout << '\n';
}
return 0;
}