Pagini recente » Cod sursa (job #145596) | Cod sursa (job #2140235) | Cod sursa (job #2334653) | Cod sursa (job #2224815) | Cod sursa (job #3301148)
#include <iostream>
#include <fstream>
#include <vector>
std::ifstream in{"royfloyd.in"};
std::ofstream out{"royfloyd.out"};
int n;
std::vector<std::vector<int>> w;
int main()
{
in >> n;
w.resize(n);
for(int i = 0; i<n; i++)
{
int j = n;
int value;
while(j--)
{
in >> value;
w[i].push_back(value);
}
}
for(int k = 0; k<n; k++)
{
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
{
if(i == j) continue;
if(w[i][k] && w[k][j] && (w[i][j] > w[i][k] + w[k][j] || w[i][j] == 0))
w[i][j] = w[i][k] + w[k][j];
}
}
}
for(auto it : w)
{
for(auto it2: it)
out << it2 << " ";
out << std::endl;
}
}