Cod sursa(job #2421069)

Utilizator raduandreiRadu Andrei raduandrei Data 14 mai 2019 01:54:49
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define N 105
#define inf 10000000
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n,a[N][N];
void citire()
{   int x;
    fin>>n;
    for(int i=1; i<=n; ++i)
        for(int j=1; j<=n; ++j)
    {
        fin>>x;
        a[i][j]=x;
    }
}
void roy()
{
    for(int k=1; k<=n; ++k)
        for(int i=1; i<=n; ++i)
        for(int j=1; j<=n; ++j)
        if(a[i][j]>a[i][k]+a[k][j])
        a[i][j]=a[i][k]+a[k][j];
}
void afisare()
{
    for(int i=1; i<=n; ++i)
    {
        for(int j=1; j<=n; ++j)
            fout<<a[i][j]<<" ";
        fout<<endl;
    }
}
int main()
{
    citire();
    for(int i=1; i<=n; ++i)
        for(int j=1; j<=n; ++j)
        if(i!=j&&a[i][j]==0) a[i][j]=inf;
    roy();

    afisare();
    return 0;
}