Cod sursa(job #2449329)

Utilizator nTropicGravityesadasdwaadwqafr nTropicGravity Data 19 august 2019 12:43:02
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include    <fstream>

using namespace std;

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

#define ARRAY_MAX 1000

int path[ARRAY_MAX][ARRAY_MAX];
int N;

void Read() {
    fin >> N;

    for (int i = 0; i < N; i++)
        for (int  j = 0; j < N; j++)
            fin >> path[i][j];
}

void shortestPath() {
    for (int k = 0; k < N; k++)
        for (int i = 0; i < N; i++)
            for (int  j = 0; j < N; j++)
                if (path[i][k] && path[k][j] && (path[i][j] > path[i][k] + path[k][j] || !path[i][j] && i != j))
                    path[i][j] = path[i][k] + path[k][j];
}

void Write() {
    for (int i = 0; i < N; i++) {
        for (int  j = 0; j < N; j++)
            fout << path[i][j] << " ";
        fout << "\n";
    }
}

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