Cod sursa(job #2796682)

Utilizator vmnechitaNechita Vlad-Mihai vmnechita Data 8 noiembrie 2021 17:16:33
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pf push_front
#define MOD 1000000007
#define NMAX 105
#define MAX 1000000000

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(0),cout.tie(0);
    int n, i, j, k, x, a[NMAX][NMAX];

    fin >> n;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= n; j++)
        {
            fin >> x;
            if(i == j) a[i][j] = 0;
            else if(x == 0) a[i][j] = MAX;
            else a[i][j] = x;
        }

    for(k = 1; k <= n; k++)
        for(i = 1; i <= n; i++)
            for(j = 1; j <= n; j++)
                a[i][j] = min(a[i][j], a[i][k] + a[k][j]);

    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= n; j++)
        {
            if(a[i][j] == MAX) fout << 0 << ' ';
            else fout << a[i][j] << ' ';
        }

        fout << '\n';
    }

    return 0;
}