Cod sursa(job #2171903)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 15 martie 2018 14:04:01
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
using namespace std;
ifstream f ("royfloyd.in");
ofstream g ("royfloyd.out");
const int nmax=1e2+3;
int n,v[nmax][nmax];
int main()
{
      f>>n;
      for(int i=1;i<=n;++i)
      {
            for(int j=1;j<=n;++j) f>>v[i][j];
      }
      for(int k=1;k<=n;++k)
      {
            for(int i=1;i<=n;++i)
            {
                  if(i==k) continue;
                  for(int j=1;j<=n;++j)
                  {
                        if(j==i) continue;
                        if(j==k) continue;
                        if((!v[i][j]||v[i][j]>v[i][k]+v[k][j])&&v[i][k]&&v[k][j]) v[i][j]=v[i][k]+v[k][j];
                  }
            }
      }
      for(int i=1;i<=n;++i)
      {
            for(int j=1;j<=n;++j) g<<v[i][j]<<' ';
            g<<'\n';
      }
      return 0;
}