Cod sursa(job #2565776)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 2 martie 2020 16:42:26
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

#define MAXN    105
#define INF     2e9

#define FILENAME    std::string("royfloyd")
std::ifstream input (FILENAME+".in");
std::ofstream output(FILENAME+".out");

int RF[MAXN][MAXN];

int main()
{
    int N;  input >> N;
    for (int i=1, j; i<=N; ++i) for (j=1; j<=N; ++j)
        input >> RF[i][j], RF[i][j] = (RF[i][j] == 0 && i != j ? INF : RF[i][j]);
    for (int k=1; k<=N; ++k)
        for (int i=1; i<=N; ++i)
            for (int j=1; j<=N; ++j)
                RF[i][j] = std::min(RF[i][j], RF[i][k] + RF[k][j]);
    for (int i=1, j; i<=N; ++i, output << '\n') for (j=1; j<=N; ++j)
        output << (RF[i][j] == INF ? 0 : RF[i][j]) << ' ';

    return 0;
}