Cod sursa(job #1763838)

Utilizator alinp25Alin Pisica alinp25 Data 24 septembrie 2016 17:50:10
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

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


void RoyFloyd(int x[105][105], int n) {
    for (int k = 0; k < n; k++)
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                if (x[i][k] && x[k][j] && (x[i][j] > x[i][k] + x[k][j]))
                    x[i][j] = x[i][k] + x[k][j];
}

int main(int argc, char *argv[]) {

    int n, v[105][105];

    // Citire
    fin >> n;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            fin >> v[i][j];

    RoyFloyd(v, n);

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            fout << v[i][j] << " ";
        }
        fout << "\n";
    }
    return 0;
}