Вот мой текущий код:
Код: Выделить всё
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const long INF = numeric_limits::max();
void display_table(const vector &matrix, const string &label, const bool use_letters = false) {
// Determine the maximum cell value for formatting purposes
long max_val = 0;
for (const auto &row : matrix) {
for (long cell : row) {
if (cell < INF && cell > max_val) {
max_val = cell;
}
}
}
// Compute the width for formatting each cell
int max_cell_width = use_letters ? 1 : max(static_cast(to_string(max_val).length()), 1);
if (!label.empty()) {
cout D, distance: 22, path: E -> A -> D
E -> E, distance: 0, path: E
E -> F, distance: 10, path: E -> F
E -> G, distance: 2, path: E -> G
F -> A, distance: 19, path: F -> B -> A
F -> B, distance: 12, path: F -> B
F -> C, distance: 16, path: F -> B -> C
F -> D, distance: 32, path: F -> B -> A -> D
F -> E, distance: 40, path: F -> B -> A -> D -> E
F -> F, distance: 0, path: F
F -> G, distance: 41, path: F -> B -> A -> D -> G
G -> A, distance: 38, path: G -> E -> A
G -> B, distance: 49, path: G -> E -> A -> B
G -> C, distance: 5, path: G -> C
G -> D, distance: 51, path: G -> E -> A -> D
G -> E, distance: 29, path: G -> E
G -> F, distance: 39, path: G -> E -> F
G -> G, distance: 0, path: G
Код: Выделить всё
Distance matrix:
A B C D E F G
A 0 11 - 13 - - -
B 7 0 4 - - - -
C - - 0 - - - -
D - - - 0 8 - 9
E 9 - - - 0 10 2
F - 12 19 - - 0 -
G - - 5 - 29 - 0
Path lengths:
A B C D E F G
A 0 11 15 13 21 31 22
B 7 0 4 20 28 38 29
C - - 0 - - - -
D 17 28 14 0 8 18 9
E 9 20 7 22 0 10 2
F 19 12 16 32 40 0 41
G 38 49 5 51 29 39 0
Intermediate vertices:
A B C D E F G
A - - B - D E D
B - - - A D E D
C - - - - - - -
D E E G - - E -
E - A G A - - -
F B - B B D - D
G E E - E - E -
A -> A, distance: 0, path: A
A -> B, distance: 11, path: A -> B
A -> C, distance: 15, path: A -> B -> C
A -> D, distance: 13, path: A -> D
A -> E, distance: 21, path: A -> D -> E
A -> F, distance: 31, path: A -> D -> E -> F
A -> G, distance: 22, path: A -> D -> G
B -> A, distance: 7, path: B -> A
B -> B, distance: 0, path: B
B -> C, distance: 4, path: B -> C
B -> D, distance: 20, path: B -> A -> D
B -> E, distance: 28, path: B -> A -> D -> E
B -> F, distance: 38, path: B -> A -> D -> E -> F
B -> G, distance: 29, path: B -> A -> D -> G
C -> A, distance: infinity, path: none
C -> B, distance: infinity, path: none
C -> C, distance: 0, path: C
C -> D, distance: infinity, path: none
C -> E, distance: infinity, path: none
C -> F, distance: infinity, path: none
C -> G, distance: infinity, path: none
D -> A, distance: 17, path: D -> E -> A
D -> B, distance: 28, path: D -> E -> A -> B
D -> C, distance: 14, path: D -> G -> C
D -> D, distance: 0, path: D
D -> E, distance: 8, path: D -> E
D -> F, distance: 18, path: D -> E -> F
D -> G, distance: 9, path: D -> G
E -> A, distance: 9, path: E -> A
E -> B, distance: 20, path: E -> A -> B
E -> C, distance: 7, path: E -> G -> C
E -> D, distance: 22, path: E -> A -> D
E -> E, distance: 0, path: E
E -> F, distance: 10, path: E -> F
E -> G, distance: 2, path: E -> G
F -> A, distance: 19, path: F -> B -> A
F -> B, distance: 12, path: F -> B
F -> C, distance: 16, path: F -> B -> C
F -> D, distance: 32, path: F -> B -> A -> D
F -> E, distance: 40, path: F -> B -> A -> D -> E
F -> F, distance: 0, path: F
F -> G, distance: 41, path: F -> B -> A -> D -> G
G -> A, distance: 38, path: G -> E -> A
G -> B, distance: 49, path: G -> E -> A -> B
G -> C, distance: 5, path: G -> C
G -> D, distance: 51, path: G -> E -> A -> D
G -> E, distance: 29, path: G -> E
G -> F, distance: 39, path: G -> E -> F
G -> G, distance: 0, path: G
Подробнее здесь: https://stackoverflow.com/questions/792 ... der-errors