Cod sursa(job #152273)

Utilizator DorinOltean Dorin Dorin Data 9 martie 2008 12:09:32
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
# include <stdio.h>

# define input "royfloyd.in"
# define output "royfloyd.out"

# define INF 1001
# define MAX 102
# define min(a,b) (a<b?a:b)

int a[MAX][MAX];
int i,j,k,n;
int main()
{
    freopen(input, "r", stdin);
    freopen(output, "w",stdout);
    
    scanf("%d",&n);
 
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
      {
       scanf("%d",&a[i][j]);
       if(!a[i][j] && i!=j)
        a[i][j] = INF;
       }
    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
           for(j=1;j<=n;j++)
              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;
}