Cod sursa(job #1993531)

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

int const NMAX = 105;
int const INF = 1001;

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

int main() {
    int i,j,k,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 (k = 1; k <= N; k++)
        for (i = 1; i <= N; i++)
            for (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 (i = 1; i <= N; i++) {
        for (j = 1; j <= N; j++)
            out<<D[i][j] << " ";
        out << '\n';
    }
}