Cod sursa(job #611124)

Utilizator monica_133Monica Marinescu monica_133 Data 30 august 2011 20:37:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;

#define MAX 100
int N;
int lung[MAX][MAX];

void citire()
{
   ifstream f("royfloyd.in");
   f>>N;
   for(int i=0;i<N;i++)
      for(int j=0;j<N;j++)
         f>>lung[i][j];
   f.close();
}

void solve()
{
   for(int k=0;k<N;k++)
      for(int i=0;i<N;i++)
         for(int j=0;j<N;j++)
            if(lung[i][k]&& lung[k][j]&& (lung[i][j]>lung[i][k]+lung[k][j] || !lung[i][j]) && i!=j)
               lung[i][j] = lung[i][k]+lung[k][j];

   ofstream g("royfloyd.out");
   for(int i=0;i<N;i++)
   {
      for(int j=0;j<N;j++)
         g<<lung[i][j]<<" ";  
      g<<endl;
   }
   g.close();
}

int main()
{
   citire();
   solve();
   return 0;
}