Cod sursa(job #2556424)

Utilizator razvanradulescuRadulescu Razvan razvanradulescu Data 24 februarie 2020 21:26:27
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#define INF 0xf3f3f3f3
using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int mat[105][105], n;

void read()
{
    f>>n;
    for(int i = 0; i<n; ++i)
    {
        for(int j = 0; j<n; ++j)
        {
            f>>mat[i][j];
            if(mat[i][j] == 0)
                mat[i][j] = INF;
        }
    }
}

void solve()
{
    for(int k = 0; k<n; ++k)
    {
        for(int i = 0; i<n; ++i)
        {
            for(int j = 0; j<n; ++j)
            {
                mat[i][j] = min(mat[i][j], mat[i][k] + mat[k][j]);
            }
        }
    }
}

void print()
{
    for(int i = 0; i<n; ++i)
    {
        for(int j = 0; j<n; ++j)
        {
            g<<mat[i][j]<<" ";
        }
    }
}

int main()
{
    read();
    solve();
    print();
    return 0;
}