Cod sursa(job #1556376)

Utilizator AlexVolatiluVoicu Alex AlexVolatilu Data 24 decembrie 2015 17:54:47
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <stdio.h>
#define INF 1073741820

using namespace std;

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

    for(k=1; k<=n; k++)
    {
        for(i=1; i<=n; i++)
        {
            if(i==k) continue;
            for(j=1; j<=n; j++)
            {
                if(j==i||j==k) continue;
                s=v[i][k]+v[k][j];
                if(s<v[i][j]) v[i][j]=s;
            }
        }
    }

    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
            printf("%d ",v[i][j]);
        printf("\n");
    }

    return 0;
}