Cod sursa(job #530474)

Utilizator icepowdahTudor Didilescu icepowdah Data 7 februarie 2011 20:59:29
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <limits>
using namespace std;

#define NMAX 101

int N, mat[NMAX][NMAX];

void readInput() {
  int i,j;
  ifstream f("royfloyd.in");  
  f >> N;
  for (int i=1;i<=N;i++)
    for (int j=1;j<=N;j++)
      f >> mat[i][j];
  f.close(); 
}

int main(void)
{
  readInput();
  for (int k=1;k<=N;k++) 
    for (int i=1;i<=N;i++)
      for (int j=1;j<=N;j++)
        if (mat[i][j] > mat[i][k]+mat[k][j]) {
          mat[i][j] = mat[i][k]+mat[k][j];
        }
  ofstream g("royfloyd.out");
  for (int i=1;i<=N;i++) {
    for (int j=1;j<=N;j++) 
      g<<mat[i][j]<<" ";
    g<<"\n";
  }
  g.close();
  return 0;
}