Cod sursa(job #144621)

Utilizator cos_minBondane Cosmin cos_min Data 27 februarie 2008 20:13:13
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <fstream>
using namespace std;

#define in "royfloyd.in"
#define out "royfloyd.out"
#define dim 101

int N;
int A[dim][dim];

inline int Minim(int a, int b) {
       if ( a < b ) return a;
       return b;
}

int main()
{
    freopen(in,"r",stdin);
    freopen(out,"w",stdout);
    
    scanf("%d", &N);
    for ( int i = 1; i <= N; i++ )
        for ( int j = 1; j <= N; j++ )
            scanf("%d", &A[i][j]);
    
    for ( int k = 1; k <= N; k++ )
        for ( int i = 1; i <= N; i++ )
            for ( int j = 1; j <= N; j++ )
                A[i][j] = Minim( A[i][j], A[i][k]+A[k][j] );
    
    for ( int i = 1; i <= N; i++, printf("\n") )
        for ( int j = 1; j <= N; j++ )
            printf("%d ", A[i][j]);
}