Cod sursa(job #2853707)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 20 februarie 2022 15:37:36
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 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 k = 1 ; k <= n ; k ++)
        for(int f = 1 ; f <= n ; f ++)
            for(int e = 1 ; e <= n ; e ++)
                if(f != e && m[f][k] && m[k][e])m[f][e] = min({m[f][e] + !m[f][e] * (INT_MAX), m[f][k] + m[k][e]}) ;

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

        cout << '\n' ;
    }

    return 0 ;
}