Cod sursa(job #145633)

Utilizator ViksenVictor-Nicolae Savu Viksen Data 29 februarie 2008 09:07:22
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

int A[100][100],n,i,j,k;

int main ()
{
    freopen ( "royfloyd.in" , "r" , stdin );
    scanf ( "%d" , &n );
    for ( i=0 ; i<n ; i++ )
        for ( j=0 ; j<n ; j++ )
            scanf ( "%d" , &A[i][j] );
    fclose ( stdin );

    for ( k=0 ; k<n ; k++ )
        for ( i=0 ; i<n ; i++ )
            for ( j=0 ; j<n ; j++ )
                if ( A[i][j] > A[i][k] + A[k][j] )
                    A[i][j] = A[i][k] + A[k][j];


    freopen ( "royfloyd.out" , "w" , stdout );
    for ( i=0 ; i<n ; i++ )
    {
        for ( j=0 ; j<n-1 ; j++ )
            printf ( "%d " , A[i][j] );
        printf ( "%d\n" , A[i][n-1] );
    }
    fclose ( stdout );
    return 0;
}