Pagini recente » Cod sursa (job #3294693) | Clasament simulareoni2015cl10 | Cod sursa (job #1977749) | Istoria paginii utilizator/petreflorina | Cod sursa (job #2324546)
#include <fstream>
#include <vector>
void royfloyd(std::vector<std::vector<int>> &adj)
{
const int n = adj.size();
for (int k = 0; k < n; ++k)
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
{
if (i != j &&
adj[i][k] != 0 &&
adj[k][j] != 0 &&
(adj[i][j] == 0 ||
adj[i][j] > adj[i][k] + adj[k][j]))
{
adj[i][j] = adj[i][k] + adj[k][j];
}
}
}
int main()
{
std::ifstream fin("royfloyd.in");
std::ofstream fout("royfloyd.out");
int n;
fin >> n;
std::vector<std::vector<int>> adj(n, std::vector<int>(n, 0));
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
fin >> adj[i][j];
royfloyd(adj);
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
fout << adj[i][j] << ' ';
}
fout << '\n';
}
return 0;
}