Cod sursa(job #256442)

Utilizator Sorin_IonutBYSorynyos Sorin_Ionut Data 11 februarie 2009 19:10:28
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream.h>
#include <fstream.h>

#define MAX 102

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int n;
int a[MAX][MAX];

int main()
{
 int i,j,k;
 
 fin>>n;
 for (i=1;i<=n;i++)
  for (j=1;j<=n;j++)
   fin>>a[i][j];
 fin.close();

 for (k=1;k<=n;k++)
  for (i=1;i<=n;i++)
   for (j=1;j<=n;j++)
    if ((a[i][j]==0 && i!=j && a[i][k]*a[k][j]!=0) || (a[i][k]*a[k][j]!=0 && a[i][j]>a[i][k]+a[k][j]))
      a[i][j]=a[i][k]+a[k][j];
 
 for(i=1;i<=n;i++)
 {
  for(j=1;j<=n;j++)
   fout<<a[i][j]<<" ";
  fout<<'\n';
 }
 fout.close();

return 0;
}