Cod sursa(job #2528820)

Utilizator CriviCriveanu Bogdan Crivi Data 22 ianuarie 2020 17:38:35
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;

ifstream in;
ofstream out;

int n;

void roy_floyd(int a[][101])
{
    for(int plug=1;plug<=n;plug++)
    {
        for(int beg=1;beg<=n;beg++)
            for(int end=1;end <= n; end++)
            {
                if((a[beg][plug] and a[plug][end] and a[beg][end]>a[beg][plug]+a[plug][end]) or (beg!=end and !a[beg][end]))
                    a[beg][end]=a[beg][plug]+a[plug][end];
            }
    }
}

int a[101][101];

int main()
{
    in.open("royfloyd.in");
    out.open("royfloyd.out");
    
    in>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            in>>a[i][j];
    }
    roy_floyd(a);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            out<<a[i][j]<<" ";
        out<<endl;
    }
    
    return 0;
}