Cod sursa(job #2653144)

Utilizator Katherine456719Swan Katherine Katherine456719 Data 27 septembrie 2020 09:37:53
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
int mat[102][102];
int main() {
    int n;
    fin >> n;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j) {
            fin >> 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 ((i != k and k != j and i != j) and (mat[i][k] != 0 and mat[k][j] != 0) and (mat[i][j] == 0 || mat[i][j] > mat[i][k] + mat[k][j]))
                mat[i][j] = mat[i][k] + mat[k][j];
        }
    for (int i = 1; i <= n; ++i){
        for (int j = 1; j <= n; ++j)
           fout << mat[i][j]<<" ";
        fout << "\n";
   }
    return 0;
}