Cod sursa(job #2211051)

Utilizator DragosArseneDragos Arsene DragosArsene Data 9 iunie 2018 11:55:59
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <stdio.h>
using namespace std;
int m[200][200];
int main() {
  FILE *fin, *fout;
    int i, j, k, n;


  fin = fopen("rf.in", "r");
  fout = fopen("rf.out", "w");
  fscanf(fin,"%d", &n);
  for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
      fscanf(fin,"%d", &m[i][j]);

    }
  }

  for(k=1;k<=n;k++){
    for(i=1;i<=n;i++){
      for(j=1;j<=n;j++){
        if(i!=j&&j!=k&&i!=k&&m[i][j]>m[i][k]+m[k][j])
          m[i][j]=m[i][k]+m[k][j];
      }
    }
  }

    for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){

      if(m[i][j]==2000000000)
        m[i][j]=0;
      fprintf(fout,"%d ", m[i][j]);
    }
    fprintf(fout,"\n");
  }

  fclose(fin);
  fclose(fout);
    return 0;
}