// Klasse für kürzeste Wege zwischen Städten (Floyd-Warshall-Algorithmus)
//
// Aufruf: wege
//
// Klaus Kusche, 2011

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>

using namespace std;

// Anzahl der Städte
const unsigned int ANZAHL = 9;

// Initialwerte für die Entfernungen
const double init[ANZAHL][ANZAHL] = {
  { },
  { 37 },
  { 24, 0 },
  { 40, 0, 0 },
  { 0, 0, 0, 47 },
  { 0, 0, 0, 0, 70 },
  { 45, 24, 60, 0, 0, 0 },
  { 67, 70, 95, 0, 0, 0, 43 },
  { 103, 0, 44, 104, 162, 0, 85, 85 }
};

// Städtenamen (Beschriftungen für die Ausgabe)
const char *beschr[ANZAHL] = {
  "Gera", "Greiz", "Zeitz", "Jena",
  "Erfurt", "Eisenach", "Zwickau", "Chemnitz", "Leipzig"
};

class Wege 
{
  // fehlt!
};

// Hier fehlt die Ausgabe-Funktion!

int main()
{
  Wege w(ANZAHL, beschr);
  
  for (unsigned int von = 0; von < ANZAHL; ++von) {
    w.set(von, von, 0);
    for (unsigned int nach = 0; nach < von; ++nach) {
      if (init[von][nach] > 0) {
        w.set(von, nach, init[von][nach]);
        w.set(nach, von, init[von][nach]);
      }
    }
  }

  cout << w;
  w.calc();
  cout << w;
  
  exit(EXIT_SUCCESS);
}
