Cod sursa(job #3350256)

Utilizator marap2011Paun Mara marap2011 Data 6 aprilie 2026 18:31:02
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <bits/stdc++.h>
#define pi pair<int,int>
using namespace std;

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

const int INF = 1e9 + 5 ;


int d[1005][1005] ;

void solve ()
{
    int n ;
    fin >> n ;
    for ( int i = 1 ; i <= n ; i ++ )
        for ( int j = 1 ; j <=  n ; j ++ )
        {
            fin >> d[i][j] ;
            if ( d[i][j] == 0 && i != j )
                d[i][j] = INF ;
        }
    for ( int k = 1 ; k <= n ; k ++ )
    {
        for ( int i = 1 ; i <= n ; i ++ )
        {
            for ( int j = 1 ; j <= n ; j ++ )
            {
                if ( d[i][k] != INF && d[k][j] != INF && d[i][k] + d[k][j] < d[i][j] )
                    d[i][j] = d[i][k] + d[k][j] ;
            }
        }
    }

    for ( int i = 1 ; i <= n ; i ++ )
    {
        for ( int j = 1 ; j <= n ; j ++ )
            if ( d[i][j] == INF )
                fout << "0 " ;
            else
                fout << d[i][j] << " " ;
        fout << '\n' ;
    }
}

int main()
{
    std :: ios_base :: sync_with_stdio ( false ) ;
    fin.tie(0) ;
    fout.tie(0) ;
    solve() ;

    return 0;
}