Cod sursa(job #928016)

Utilizator StanAndreiAndrei Stan StanAndrei Data 26 martie 2013 10:41:01
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>

using namespace std;

int A[105][105],N;

void cit()
{
    int i,j;

    scanf("%d\n",&N);


    for (i=1;i<=N;i++)
        for (j=1;j<=N;j++)
            scanf("%d",&A[i][j]);
}

void rez()
{
    int k,i,j;

    for (k=1;k<=N;k++)
        for (i=1;i<=N;i++)
            for (j=1;j<=N;j++)
                if (A[i][k] && A[k][j] && i!=j && A[i][k]+A[k][j]<A[i][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");
    }
}

int main()
{
    freopen ("royfloyd.in","r",stdin);
    freopen ("royfloyd.out","w",stdout);

    cit();
    rez();

    fclose(stdin);
    fclose(stdout);
    return 0;
}