Cod sursa(job #1993529)

Utilizator andrusca97Rosu Andrei andrusca97 Data 23 iunie 2017 11:08:16
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
/*
 * royfloyd.cpp
 *
 *  Created on: Jun 23, 2017
 *      Author: andreir
 */
#include <fstream>
using namespace std;

int const NMAX = 100;
int const INF = 1001;

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

int main() {
    int N, D[NMAX][NMAX];
    in >> N;
    for (int i = 1; i <= N; i++)
        for (int j = 1; j <= N; j++) {
            in >> D[i][j];
        }
    for (int k = 1; k <= N; k++)
        for (int i = 1; i <= N; i++)
            for (int j = 1; j <= N; j++)
                if (D[i][k] && D[k][j]
                        && (D[i][k] + D[k][j] < D[i][j] || !D[i][j]) && i != j)
                    D[i][j] = D[i][k] + D[k][j];

    for (int i = 1; i <= N; i++) {
        for (int j = 1; j <= N; j++)
            out<<D[i][j] << " ";
        out << '\n';
    }
}