Cod sursa(job #2917232)

Utilizator raresgherasaRares Gherasa raresgherasa Data 3 august 2022 21:01:32
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NM = 1e3 + 5;

int mat[NM][NM], n;

int main(){
  fin >> n;
  for (int i = 1; i <= n; i++){
    for (int j = 1; j <= n; j++){
      fin >> mat[i][j];
      if (mat[i][j] == 0){
        mat[i][j] = 1e9;
      }
    }
  }
  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] != 0 && mat[k][j] != 0 && i != j){
          mat[i][j] = min(mat[i][j], mat[i][k] + mat[k][j]);
        }
      }
    }
  }
  for (int i = 1; i <= n; i++){
    for (int j = 1; j <= n; j++){
      if (mat[i][j] == 1e9){
        mat[i][j] = 0;
      }
      fout << mat[i][j] << " ";
    }
    fout << '\n';
  }
}