Cod sursa(job #166336)

Utilizator tm_raduToma Radu tm_radu Data 27 martie 2008 21:22:38
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

int n, i, j, k;
int a[101][101];

int main()
{
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
    scanf("%d", &n);
    for ( i = 1; i <= n; i++ )
        for ( j = 1; j <= n; j++ )
            scanf("%d", &a[i][j]);
    
    for ( k = 1; k <= n; k++ )
        for ( i = 1; i <= n; i++ )
            for ( j = 1; j <= n; j++ )
                if ( i != k && i != j && k != j )
                    if ( a[i][j] > a[i][k] + a[k][j] )
                        a[i][j] = a[i][k] + a[k][j];
    
    for ( i = 1; i <= n; i++ )
    {
        for ( j = 1; j <= n; j++ )
            printf("%d ", a[i][j]);
        printf("\n");
    }
    return 0;
}