Pagini recente » Cod sursa (job #996544) | Cod sursa (job #1838115) | Cod sursa (job #1550263) | Cod sursa (job #2452230) | Cod sursa (job #1973589)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
void floyd_warshall(std::vector<std::vector<int>> &graph)
{
size_t vertices = graph.size();
for (size_t k = 0; k < vertices; k++)
{
for (size_t i = 0; i < vertices; i++)
{
for (size_t j = 0; j < vertices; j++)
{
graph[i][j] = std::min(graph[i][j], graph[i][k] + graph[k][j]);
}
}
}
}
int main(void)
{
std::ifstream in("royfloyd.in");
size_t n;
in >> n;
std::vector<std::vector<int>> graph{ n };
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < n; j++) {
int cost;
in >> cost;
graph[i].push_back(cost);
}
}
in.close();
floyd_warshall(graph);
std::ofstream out("royfloyd.out");
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < n; j++) {
out << graph[i][j]<<' ';
}
out << '\n';
}
out.close();
return 0;
}