Cod sursa(job #1981266)

Utilizator Costi15Savu Constantin Costi15 Data 15 mai 2017 12:11:41
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("rf.in");
ofstream g("rf.out");
int c[260][260],n,m,in[260][260];

void citire()
{f>>n;
 for(int i=1;i<=n;i++)
  for(int j=1;j<=n;j++)
    {f>>c[i][j];
     if(c[i][j]!=0)
      in[i][j]=1;
    }
}

void RF()
{for(int k=1;k<=n;k++)
  for(int i=1;i<=n;i++)
   for(int j=1;j<=n;j++)
     if(c[i][j]>c[i][k]+c[k][j])
     {
       c[i][j]=c[i][k]+c[k][j];
       in[i][j]=in[i][k]+in[k][j];
     }
     else
      if(c[i][j]==c[i][k]+c[k][j])
       if(in[i][j]<in[i][k]+in[k][j])
        in[i][j]=in[i][k]+in[k][j];
}

void afisare()
{for(int i=1;i<=n;i++)
  {for(int j=1;j<=n;j++)
    g<<c[i][j]<<" ";
   g<<endl;
  }

}

int main()
{citire();
 RF();
 afisare();

    return 0;
}