Pagini recente » Cod sursa (job #1900857) | Cod sursa (job #1275942) | Cod sursa (job #2640906) | Cod sursa (job #716306) | Cod sursa (job #2167028)
#include <fstream>
#include <array>
#include <algorithm>
std::ofstream g("royfloyd.out");
std::ifstream f("royfloyd.in");
template<int rows, int cols>
using Matrix = std::array<std::array<int, cols>, rows>;
Matrix<100, 100> A;
size_t numberOfNodes;
void Read()
{
f >> numberOfNodes;
for (size_t i = 0U; i < numberOfNodes; ++i) {
for (size_t j = 0U; j < numberOfNodes; ++j) {
f >> A[i][j];
}
}
}
void RoyFloyd()
{
for (size_t k = 0U; k < numberOfNodes; ++k)
for (size_t i = 0U; i < numberOfNodes; ++i)
for (size_t j = 0U; j < numberOfNodes; ++j)
if (A[i][j] > A[i][k] + A[k][j])
A[i][j] = A[i][k] + A[k][j];
}
void Print()
{
for (size_t i = 0U; i < numberOfNodes; ++i) {
for (size_t j = 0U; j < numberOfNodes; ++j) {
g << A[i][j] << ' ';
}
g << '\n';
}
}
int main(int argc, char * argv[])
{
Read();
RoyFloyd();
Print();
return 0;
}