29 int[] startNodes = {0, 0, 1, 1, 1, 2, 2, 3, 4};
30 int[] endNodes = {1, 2, 2, 3, 4, 3, 4, 4, 2};
31 int[] capacities = {15, 8, 20, 4, 10, 15, 4, 20, 5};
32 int[] unitCosts = {4, 4, 2, 2, 6, 1, 3, 2, 3};
35 int[] supplies = {20, 0, 0, -5, -15};
43 for (
int i = 0; i < startNodes.Length; ++i)
46 capacities[i], unitCosts[i]);
47 if (arc != i)
throw new Exception(
"Internal error");
51 for (
int i = 0; i < supplies.Length; ++i)
66 Console.WriteLine(
"Minimum cost: " + minCostFlow.
OptimalCost());
67 Console.WriteLine(
"");
68 Console.WriteLine(
" Edge Flow / Capacity Cost");
69 for (
int i = 0; i < minCostFlow.
NumArcs(); ++i)
71 long cost = minCostFlow.
Flow(i) * minCostFlow.
UnitCost(i);
72 Console.WriteLine(minCostFlow.
Tail(i) +
" -> " +
73 minCostFlow.
Head(i) +
" " +
74 string.Format(
"{0,3}", minCostFlow.
Flow(i)) +
" / " +
75 string.Format (
"{0,3}", minCostFlow.
Capacity(i)) +
" " +
76 string.Format (
"{0,3}", cost));
81 Console.WriteLine(
"Solving the min cost flow problem failed. Solver status: " +