Cod sursa(job #2198435)

Utilizator BogdanBeleiBogdan Belei BogdanBelei Data 24 aprilie 2018 15:15:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

int n;
int m[1000][1000];

#define inf 100000


int main() {
    ifstream f;
    f.open("royfloyd.in");
    ofstream o("royfloyd.out");

    f >> n;

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            f >> m[i][j];
            if (m[i][j] == 0 && i != j) {
                m[i][j] = inf;
            }
        }
    }
    // gata citirea

    for (int k = 0; k < n; k++) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                m[i][j] = min(m[i][j], m[i][k] + m[k][j]);
            }
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (m[i][j] == inf) {
                m[i][j] = 0;
            }
            o << m[i][j] << " ";
        }
        o << endl;
    }

    return 0;
}