Cod sursa(job #2614718)

Utilizator MocalinnoMoca Andrei Catalin Mocalinno Data 12 mai 2020 16:14:53
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <bits/stdc++.h>
#define DAU  ios::sync_with_stdio(false); fin.tie(0); fout.tie(0);
#define PLEC fin.close(); fout.close(); return 0;
using namespace std;
const string problem("royfloyd");
ifstream fin(problem + ".in");
ofstream fout(problem + ".out");
using VI  = vector<int>;
using VVI = vector<VI>;
int n;
VVI d;
int main() {
    DAU
    fin >> n;
    d = VVI(n + 1, VI(n + 1));
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j) {
            fin >> d[i][j];
            if (!d[i][j])
                d[i][j] = 1e9;
        }
    for (int k = 1; k <= n; ++k)
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= n; ++j)
                if (i != j)
                    d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
    for (int i = 1; i <= n; ++i, fout << '\n')
        for (int j = 1; j <= n; ++j) {
            if (d[i][j] == 1e9)
                d[i][j] = 0;
            fout << d[i][j] << ' ';
        }
    PLEC
}