Загрузка данных


#include <iostream>
#include <vector>

using namespace std;

void show_matrix(const matrix_type& adjacency_matrix)
{
    for (const auto& line: adjacency_matrix)
    {
    for (const auto& el: line)
    {
    std::cout << el << " ";
    }
    std::cout << std::endl;
    }
}

void flyod(matrix_type& adjacency_matrix)
{
    for (us k = 0; k < adjacency_matrix.size(); ++k)
    {
    for (us i = 0; i < adjacency_matrix.size(); ++i)
    {
    for (us j = 0; j < adjacency_matrix.size(); ++j)
    {
    if(adjacency_matrix[i][j] > adjacency_matrix[i][k] + adjacency_matrix[k][j])
    {
    adjacency_matrix[i][j] = adjacency_matrix[i][k] + adjacency_matrix[k][j];
    }
    }
    }
    }

    // std::cout << "k = " << k + 1 << std::endl;
    // show_matrix(adjacency_matrix);
    // std::cout << std::endl;
    }
}

void read_matrix(matrix_type& adjacency_matrix)
{
    for (us i = 0; i < adjacency_matrix.size(); ++i)
    {
    for (us j = 0; j < adjacency_matrix.size(); ++j)
    {
    std::cin >> adjacency_matrix[i][j];
    }
    }
}

int main()
{
    us N;
    std::cin >> N;
    matrix_type adjacency_matrix(N, std::vector<short>(N));
    read_matrix(adjacency_matrix);
    Floyd(adjacency_matrix);
    show_matrix(adjacency_matrix);
    return 0;
}