Cod sursa(job #1706449)

Utilizator mihaidanielmihai daniel mihaidaniel Data 22 mai 2016 16:56:19
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>

using namespace std;

int mat[1001][1001];

int main()
{
    freopen( "royfloyd.in", "r", stdin );
    freopen( "royfloyd.out", "w",stdout );
    int n, m, i, x, y, z;
    scanf( "%d", &n);
    for( x=1; x<=n; ++x )
        for( y=1; y<=n; ++y )
        {
            scanf( "%d", &mat[x][y] );
            if( mat[x][y]==0 )mat[x][y]=0x3f3f3f;
        }

    for( i=1; i<=n; ++i )
        for( x=1; x<=n; ++x )
            for( y=1; y<=n; ++y )
                if( x!=y && x!=i && i!=y && mat[x][i]+mat[i][y]<mat[x][y] )
                    mat[x][y]=mat[x][i]+mat[i][y];

    for( x=1; x<=n; ++x, printf("\n") )
        for( y=1; y<=n; ++y )
            if( mat[x][y]==0x3f3f3f )printf( "0 " );
            else printf( "%d ", mat[x][y] );

    return 0;
}