Cod sursa(job #1127184)

Utilizator Sirius2001Happy Birthday Sirius2001 Data 27 februarie 2014 11:30:28
Problema Floyd-Warshall/Roy-Floyd Scor 50
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(i!=j && i!=k && j!=k && mat[i][k] && mat[k][j] && mat[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");
 }
}