Cod sursa(job #2616626)

Utilizator pro119Manea Dumitru pro119 Data 19 mai 2020 15:29:18
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
#define ll long long

const int mxN=101;
int n, cost[mxN][mxN];


void floyd ()
{

    for (int k=0; k<n; k++)
        for (int i=0; i<n; i++)
            for (int j=0; j<n; j++)
                if (k!=i && k!=j && i!=j)
                    if (cost[i][j]>(cost[i][k]+cost[k][j]) || cost[i][j]==0)
                        cost[i][j]=cost[i][k]+cost[k][j];



}
int main()
{
    //ifstream cin("royfloyd.in");
    //ofstream cout("royfloyd.out");
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>n;
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
            cin>>cost[i][j];

    //solve
    floyd();

    //write
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
            cout<<cost[i][j]<<" ";
        cout<<"\n";
    }



    return 0;
}