Cod sursa(job #2327829)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 25 ianuarie 2019 00:19:14
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <fstream>
#include <limits>

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

static const int NMAX = 105;
static const int INF = INT_MAX;

int n;
long long v[NMAX][NMAX];

void ReadInput()
{
    fin >> n;
    for(int i = 1; i<= n; ++i)
        for(int j = 1; j<= n; ++j){
            fin >> v[i][j];
            if(i!=j && v[i][j] == 0)
                v[i][j] = INF;
        }
}
void RoyFloyd()
{
    int k,i,j;
    for(k = 1; k<= n; ++k)
    {
        for(i = 1; i<= n; ++i)
        {
            for(j = 1; j<=n; ++j)
            {
                if(v[i][j] > v[i][k] + v[k][j])
                    v[i][j] = v[i][k] + v[k][j];
            }
        }
    }
}
void PrintOutput()
{
    for(int i =1;i <=n ; ++i)
    {
        for(int j =1; j<=n; ++j)
        {
            fout << v[i][j] << " ";
        }
        fout << endl;
    }
}

int main()
{
    ReadInput();
    RoyFloyd();
    PrintOutput();
    return 0;
}