Cod sursa(job #1127192)

Utilizator Sirius2001Happy Birthday Sirius2001 Data 27 februarie 2014 11:34:15
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
/*
    Keep It Simple!
*/

#include<stdio.h>

int n,mat[105][105];

int main()
{
  freopen("royfloyd.in","r",stdin);
  freopen("royfloyd.out","w",stdout);

  scanf("%d",&n);

  for(int i=1;i<=n;i++)
  for(int j=1;j<=n;j++)
    scanf("%d",&mat[i][j]);

  for(int k=1;k<=n;k++)
     for(int i=1; i<=n; i++)
         for(int j=1; j<=n; j++)
            if((mat[i][j] > (mat[i][k] + mat[k][j]) || !mat[i][j] ) && i!=j && mat[i][k] && mat[k][j])
                mat[i][j] = mat[i][k] + mat[k][j];

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