Cod sursa(job #194325)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 9 iunie 2008 19:57:35
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
long n,i,j,k,a[1000][1000];
int main()
{
 freopen("royfloyd.in","r",stdin);
 freopen("royfloyd.out","w",stdout);
 scanf("%ld",&n);
 for(i=1;i<=n;++i)
    for(j=1;j<=n;++j)
       scanf("%ld",&a[i][j]);
 for(k=1;k<=n;++k)
    {
     for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
           if(i!=j)
             if(a[i][k]&&a[k][j])
               if(!a[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("%ld ",a[i][j]);
     printf("\n");
    }
 return 0;
}