Cod sursa(job #700200)

Utilizator andytisaMoisuc Andrei andytisa Data 1 martie 2012 03:39:37
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#define NMAX 101
using namespace std;
int n,a[NMAX][NMAX];
void afisare(){
  ofstream fo("royfloyd.out");
   for (int i=0; i<n; i++){
      for (int j=0; j<n; j++){
        fo << a[i][j] << " ";
      }
      fo << '\n';
    }
}
int royfloyd(){
  int i,j,k;
  for ( k = 0; k < n; k++ )
      for ( i = 0; i < n; i++ )

         for ( j = 0; j < n; j++ ){
if (a[i][k]!=0&&a[k][j]!=0){
            a[i][j] = min( a[i][j], a[i][k] + a[k][j] );
         }}
}

int main()
{
    ifstream fi("royfloyd.in");
    fi >> n;
    for (int i=0; i<n; i++){
      for (int j=0; j<n; j++){
        fi >> a[i][j];
      }
    }
    royfloyd();
    afisare();

    return 0;
}