Cod sursa(job #2079708)

Utilizator ssebiStanciu Sebastian ssebi Data 1 decembrie 2017 18:48:03
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
void floyd(int a[150][150],int n)
{
    int y,i,j;
    for(y=1;y<=n;y++)
        for(i=1;i<=n;++i)
            for(j=1;j<=n;++j)
            {
        if((a[i][j]>a[i][y]+a[y][j])&&(i!=y)&&(j!=y))
           a[i][j]=a[i][y]+a[y][j];
        else if(a[i][j]==0&&i!=j)
           a[i][j]=a[i][y]+a[y][j];
            }


     for(i=1;i<=n;++i)
     {
        for(j=1;j<=n;++j)
            fout<<a[i][j]<<' ';
        fout<<"\n";
     }
}
int main()
{
    int n,a[150][150];
    fin>>n;
    int i,j;
    for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
        fin>>a[i][j];
    floyd(a,n);
    return 0;
}