Cod sursa(job #3164916)

Utilizator vladsoartavlad sofronea vladsoarta Data 4 noiembrie 2023 19:21:26
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>

using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");

int n;
int mat[101][101];

int main() {

    cin >> n;
    for (int i = 1; i<=n; i++) {
        for (int j = 1; j<=n; j++) {
            cin >> mat[i][j];
        }
    }

    for (int k = 1; k<=n; k++) {
        for (int i = 1; i<=n; i++) {
            for (int j = 1; j<=n; j++) {
                 if (mat[i][k] && mat[k][j] && (mat[i][j] > mat[i][k] + mat[k][j] || !mat[i][j]) && i != j) 
                    mat[i][j] = mat[i][k] + mat[k][j];

            }
        }
    }

    for (int i = 1; i<=n; i++) {
        for (int j = 1; j<=n; j++) {
            cout << mat[i][j] << " ";
        }
        cout << '\n';
    }

    return 0;
}