Cod sursa(job #1808911)

Utilizator RaduToporanRadu Toporan RaduToporan Data 18 noiembrie 2016 13:10:00
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
#include <iostream>

using namespace std;
int n,i,j,k,a[105][105];

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!=j && j!=k &&i!=k && a[i][k]!=0 && a[k][j]!=0)
            a[i][j]=min(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;
}