Cod sursa(job #1112574)

Utilizator a96tudorAvram Tudor a96tudor Data 19 februarie 2014 21:02:10
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
#define N_MAX 110
#define INF (1<<31)-5
using namespace std;
int A[N_MAX][N_MAX],N;
int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.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]);
                if (A[i][j]==0 && i!=j) A[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 (i!=j && A[i][j] > A[k][j] + A[i][k]) A[i][j]= A[k][j] + A[i][k];
    for (int i=1;i<=N;++i)
    {
        for (int j=1;j<=N;++j) printf("%d ",A[i][j]);
        printf("\n");
    }
    fclose(stdin); fclose(stdout);
    return 0;
}