Cod sursa(job #2801485)

Utilizator YusyBossFares Yusuf YusyBoss Data 16 noiembrie 2021 12:48:49
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#define NMAX 100
#define INF (1000 * NMAX)

using namespace std;

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

int d[NMAX + 1][NMAX + 1];

int main() {
  int n, i, j, val, intermediar;
  cin >> n;

  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      cin >> val;
      val = (val == 0) ? INF : val;
      d[i][j] = val;
    }
  }

  for (intermediar = 0; intermediar < n; intermediar++) {
    for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++) {
        if (d[i][intermediar] + d[intermediar][j] < d[i][j])
          d[i][j] = d[i][intermediar] + d[intermediar][j];
      }
    }
  }


  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++)
      cout << (i == j ? 0 : d[i][j]) << " ";
    cout << "\n";
  }
  return 0;
}