Cod sursa(job #1993523)

Utilizator andrusca97Rosu Andrei andrusca97 Data 23 iunie 2017 11:04:00
Problema Floyd-Warshall/Roy-Floyd Scor 0
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 = 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];
            if (D[i][j] == 0)
                D[i][j] = INF;
        }
    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][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';
    }
}