Cod sursa(job #2304303)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 17 decembrie 2018 21:21:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
#define DIM 105
#define INF 10000005
using namespace std;

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

int n;
int D[DIM][DIM];

int main()
{
    in>>n;
    for( int i = 1; i <= n; i++ )
        for( int j = 1; j <= n; j++ )
        {
            in>>D[i][j];

            if( D[i][j] == 0 )
                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][j] > D[i][k] + D[k][j] && 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 )
                out<<0<<" ";
            else
                out<<D[i][j]<<" ";
        out<<"\n";
    }

    return 0;
}