public void RunTest() { var matrix = new[,] { { 183, 7, 863, 53, 439 }, { 563, 497, 973, 383, 79 }, { 343, 287, 583, 63, 169 }, { 773, 627, 943, 343, 959 }, { 103, 767, 303, 473, 699 } }; var minMatrix = new int[5, 5]; for (var i = 0; i < 5; i++) { for (var j = 1; j < 5; j++) { minMatrix[i, j] = 1000 - matrix[i, j]; } } var alg = new HungarianAlgorithm(minMatrix); var result = alg.Run(); var y = 0; var sum2 = 0; foreach (var number in result) { Console.WriteLine(number); sum2 += matrix[y, number]; y++; } Console.WriteLine(sum2); }
public long Solve() { // vytvoreni var matrix = new int[Limit, Limit]; var computeMatrix = new int[Limit, Limit]; var text = File.ReadAllLines(@"..\..\Problems\Problem345.txt"); var lineNumber = 0; var columnNumber = 0; foreach (var line in text) { foreach (var number in line.Split(' ')) { if (!string.IsNullOrWhiteSpace(number)) { matrix[lineNumber, columnNumber] = int.Parse(number); computeMatrix[lineNumber, columnNumber] = 1000 - int.Parse(number); columnNumber++; } } lineNumber++; columnNumber = 0; } var alg = new HungarianAlgorithm(computeMatrix); var result = alg.Run(); var sum = 0; var y = 0; foreach (var number in result) { sum += matrix[y, number]; y++; } return sum; }