Cod sursa(job #2661383)

Utilizator lucametehauDart Monkey lucametehau Data 21 octombrie 2020 21:48:23
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#pragma GCC optimize("Ofast")

using namespace std;

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

int n;

int v[105][105];

int main() {
  cin >> n;
  for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= n; j++)
      cin >> v[i][j];
  }
  for(int k = 1; k <= n; k++) {
    for(int i = 1; i <= n; i++) {
      if(!v[i][k])
        continue;
      for(int j = 1; j <= n; j++) {
        if(!v[j][k] || i == j)
          continue;
        if(!v[i][j] || v[i][j] > v[i][k] + v[k][j])
          v[i][j] = v[i][k] + v[k][j];
      }
    }
  }
  for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= n; j++)
      cout << v[i][j] << " ";
    cout << "\n";
  }
  return 0;
}