Cod sursa(job #2776996)

Utilizator francescom_481francesco martinut francescom_481 Data 21 septembrie 2021 19:28:32
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include<bits/stdc++.h>

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
#define cin fin
#define cout fout

#define N 1030
int n, m, nr, v[N], w[N], s[N], d[N][N];

int main()
{
    cin >> n;
    for(int i = 1 ; i <= n ; i++)
    {
        for(int j = 1 ; j <= n ; j++)
        {
            cin >> a[i][j];
        }
    }
    for(int k = 1 ; k <= n ; ++k)
    {
        for(int i = 1 ; i <= n ; ++i)
        {
            for(int j = 1 ; j <= n ; ++j)
            {
                if(a[i][k]  &&  a[k][j]  &&  (!a[i][j]  ||  a[i][j] > a[i][k]+a[k][j])  &&   i != j)
                {
                    a[i][j] = a[i][k] + a[k][j];
                }
            }
        }
    }
    for(int i = 1 ; i <= n ; i++)
    {
        for(int j = 1 ; j <= n ; j++)
        {
            cout << a[i][j] << " " ;
        }
        cout << '\n';
    }
    return 0;
}