Cod sursa(job #2853691)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 20 februarie 2022 15:28:32
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <deque>
#include <vector>
#include <bitset>
#include <queue>
#include <algorithm>
#include <cmath>
#include <climits>

#define MOD 1000000007

using namespace std ;

ifstream cin ("royfloyd.in") ;
ofstream cout ("royfloyd.out") ;

int n, m[109][109], fw[109][109] ;

int main()
{
    cin >> n ;

    for(int f = 1 ; f <= n ; f ++)
        for(int e = 1 ; e <= n ; e ++)
            cin >> m[f][e] ;

    for(int f = 1 ; f <= n ; f ++)
        for(int e = 1 ; e <= n ; e ++)
            if(f != e)fw[f][e] = INT_MAX / 10 ;

    for(int k = 1 ; k <= n ; k ++)
        for(int f = 1 ; f <= n ; f ++)
            for(int e = 1 ; e <= n ; e ++)
                if(f != e)fw[f][e] = min({m[f][e], fw[f][k] + fw[k][e], fw[f][e]}) ;

    for(int f = 1 ; f <= n ; f ++)
    {
        for(int e = 1 ; e <= n ; e ++)
            cout << fw[f][e] << " " ;

        cout << '\n' ;
    }

    return 0 ;
}