Cod sursa(job #238899)

Utilizator bacerandreiBacer Andrei bacerandrei Data 3 ianuarie 2009 16:57:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream.h>
#define INF 10000

int a[105][105] , n , i , j , k;


void lungime_drumuri()
{
  int i , j , k;
   for(k = 1 ; k <= n ; k++)
    for(i = 1 ; i <= n ; i++)
     for(j = 1 ; j <= n ; j++)
      if (a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j) 
        a[i][j] = a[i][k] + a[k][j];   

}




int main()
{
  ifstream f("royfloyd.in");
  ofstream g("royfloyd.out");
   f>>n;
    for(i = 1 ; i <= n ; i++)
     for(j = 1 ; j <= n ; j++)
       f>>a[i][j];
    lungime_drumuri();
   for(i = 1 ; i <= n ; i++)
   {
    for(j = 1 ; j <= n ; j++)
     g<<a[i][j]<<" ";
    g<<"\n";
   }
  f.close();
  g.close();
 return 0;
}