Cod sursa(job #1705920)

Utilizator razvan3895Razvan-Mihai Chitu razvan3895 Data 21 mai 2016 07:46:11
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <climits>

#define MIN(a, b)   ((a) < (b) ? (a) : (b))
#define INF 1000000000

using namespace std;

ifstream in("royfloid.in");
ofstream out("royfloid.out");



int main() {
    int n;

    in >> n;

    int d[101][101];

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            int c;

            in >> c;

            d[i][j] = c != 0 ? c : INF;
        }
    }

    for (int k = 0; k < n; ++k) {
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                if (i == j) {
                    continue;
                }
                d[i][j] = MIN(d[i][j], d[i][k] + d[k][j]);
            }
        }
    }

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            out << (d[i][j] != INF ? d[i][j] : 0) << ' ';
        }
        out << '\n';
    }
    
    return 0;
}