Cod sursa(job #162124)

Utilizator portocalaDiculescu Elena Alexandra portocala Data 19 martie 2008 15:10:22
Problema Floyd-Warshall/Roy-Floyd Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<fstream.h>
int n,a[100][100];

int main()
{int i,j,k;
ifstream f("royfloyd.in");
f>>n;
for(i=1;i<=n;i++)
 for(j=1;j<=n;j++)
  f>>a[i][j];
f.close();
for(k=1;k<=n;k++)
 for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
   if((i!=j)&&(k!=i)&&(k!=j))
    if(!a[i][j]){if((a[i][k])&&(a[k][j]))a[i][j]=a[i][k]+a[k][j];}
     else if((a[i][k]+a[k][j])<a[i][j])a[i][j]=a[i][k]+a[k][j];

ofstream g("royfloyd.out");
for(i=1;i<=n;i++)
 {for(j=1;j<=n;j++)
  g<<a[i][j]<<" ";
  g<<'\n';}
g.close();
return 0;
}