Cod sursa(job #2195425)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 16 aprilie 2018 13:20:00
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
const int inf = 2000000000;
int k,i,j,n,d[102][102];
int main() {
  fin >> n;
  for (i = 1; i <= n; i++) {
      for (j = 1; j <= n; j++) {
          fin >> d[i][j];
          if (d[i][j] == 0 && i != j) d[i][j] = inf;
      }
  }
  for (k = 1; k <= n; k++) {
      for (i = 1; i <= n; i++) {
         for (j = 1; j <= n; j++)
         {
             if (d[i][j] != 0)
             {
                 if (d[i][j] > d[i][k] +  d[k][j] && d[i][k] != 0 && d[k][j] != 0)
                 {
                    d[i][j] = d[i][k] +  d[k][j];
                 }
             }
         }
      }
  }
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) fout << d[i][j] << " ";
    fout << '\n';
  }
  return 0;
}