Cod sursa(job #1126927)

Utilizator DeclinGogonea Andrei Declin Data 27 februarie 2014 10:28:01
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>

using namespace std;

int main()
{
    short n,i,j,k;
    int a[101][101];
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    scanf("%hd",&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((a[i][k]!=0)&&(a[k][j]!=0)&&(i!=j)&&((a[i][k]+a[k][j]<a[i][j]) || (a[i][j]==0))) 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("%d\n",a[i][n]);
    }
    return 0;
}