Cod sursa(job #2752367)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 17 mai 2021 19:55:54
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

#define NMAX (100 + 7)
///#define inf (100*100*1000 + 7)

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

int N, a[NMAX][NMAX], d[NMAX][NMAX][NMAX];

int main() {
    fin >> N;
    for(int i = 1; i<= N; ++i) {
        for(int j = 1; j<= N; ++j) {
            fin >> a[i][j];
            ///d[0][i][j] = (a[i][j] || i == j) ? a[i][j] : inf;
            d[0][i][j] = a[i][j];
        }
    }
    for(int k = 1; k<= N; ++k) {
        for(int i = 1; i<= N; ++i) {
            for(int j = 1; j<= N; ++j) {
                d[k][i][j] = min(d[k-1][i][j], d[k-1][i][k] + d[k-1][k][j]);
                if(k == N) fout << d[k][i][j] << ' ';
            }
            if(k == N) fout << '\n';
        }
    }
}