Cod sursa(job #2853819)

Utilizator andu9andu nita andu9 Data 20 februarie 2022 17:21:19
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

const int INF = 1e9;
vector <vector <int>> mat;

int main ()
{
    int n, i, j, k;
    f >> n;
    mat.assign (n + 1, vector <int> (n + 1));
    for (i = 1; i <= n; i += 1)
    {
        for (j = 1; j <= n; j += 1)
            f >> mat[i][j];
    }
    for (k = 1; k <= n; k += 1)
    {
        for (i = 1; i <= n; i += 1)
        {
            for (j = 1; j <= n; j += 1)
            {
                if (mat[i][j] > mat[i][k] + mat[k][j])
                    mat[i][j] = mat[i][k] + mat[k][j];
            }
        }
    }
    for (i = 1; i <= n; i += 1)
    {
        for (j = 1; j <= n; j += 1)
        {
            if (mat[i][j] != INF)
                g << mat[i][j];
            else
                g << 0;
            g << ' ';
        }
        g << '\n';
    }
    return 0;
}