Cod sursa(job #2079704)

Utilizator pistvanPeter Istvan pistvan Data 1 decembrie 2017 18:45:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#define MaxN 101
#define Inf 1000000
using namespace std;


int N;
int M[MaxN][MaxN];

void Read()
{
    ifstream f("royfloyd.in");
    f>>N;
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<N;j++)
        {
            f>>M[i][j];
            if (i!=j && M[i][j]==0)
                M[i][j] = Inf;
        }
    }
}

void RoyFloyd()
{
    for (int k=0;k<N;k++)
        for (int i=0;i<N;i++)
            for (int j=0;j<N;j++)
                M[i][j] = min(M[i][j], M[i][k]+M[k][j]);
}

void Write()
{
    ofstream g("royfloyd.out");
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<N;j++)
            g<<M[i][j]<<' ';
        g<<'\n';
    }
}

int main()
{
    Read();
    RoyFloyd();
    Write();
}