Cod sursa(job #1843266)

Utilizator rnqftwcalina florin daniel rnqftw Data 8 ianuarie 2017 15:18:01
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
int n,a[101][101];
void citire()
{
       ifstream f1("royfloyd.in");
       int i,j;
       f1>>n;
       for(i=0;i<n;i++)
              for(j=0;j<n;j++)
                f1>>a[i][j];
     f1.close();
}
void roy_floyd()
{
       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]&&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];
}
void afisare()
{
       ofstream f2("royfloyd.out");
       int i,j;
       for(i=0;i<n;i++)
       {
              for(j=0;j<n;j++)
                     f2<<a[i][j]<<" ";
          f2<<'\n';

       }
       f2.close();
}
int main()
{
       citire();
       roy_floyd();
       afisare();
       return 0;
}