Cod sursa(job #2424798)

Utilizator IulianaRusuIuliana Rusu IulianaRusu Data 23 mai 2019 20:59:11
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>

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

void Roy_Floyd(int matrice[101][101], int n) {
    int i, j, k;
    for (k = 1; k <= n; k++)
        for (i = 1; i <= n; i++)
            for (j = 1; j <= n; j++)
                if (matrice[i][j] > (matrice[i][k] + matrice[k][j]) || matrice[i][j] == 0) {
                    if ((matrice[i][k] != 0) && (matrice[k][j] != 0) && (i != j))
                        matrice[i][j] = matrice[i][k] + matrice[k][j];
                }
}

int main() {

    int N, matrice[101][101];
    int i, j;
    fin >> N;
    for (i = 1; i <= N; i++)
        for (j = 1; j <= N; j++)
            fin >> matrice[i][j];
    Roy_Floyd(matrice, N);
    for (i = 1; i <= N; i++) {
        for (j = 1; j <= N; j++)
            fout << matrice[i][j] << " ";
        fout << endl;
    }
    return 0;
}