Cod sursa(job #2162009)

Utilizator marcdariaDaria Marc marcdaria Data 11 martie 2018 22:58:48
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MaxN = 105;
int N, G[MaxN][MaxN];

int main()
{
    fin >> N;
    for (int i = 1; i<= N; ++i)
        for (int j = 1; j <= N; ++j)
            fin >> G[i][j];

    for (int k = 1; k <= N; ++k)
        for (int i = 1; i <= N; ++i)
        for (int j = 1; j <= N; ++j)
            if (G[i][k] && G[k][j] && i != j && (G[i][j] > G[i][k] + G[k][j] || !G[i][j]))
                G[i][j] = G[i][k] + G[k][j];

    for (int i = 1; i <= N; ++i)
    {
        for (int j = 1; j <= N; ++j)
            fout << G[i][j] << " ";
        fout << '\n';
    }
    return 0;
}