public override byte[] Solve(byte[] partialData, TimeSpan timeout) { MmPartialProblem partialProblem; using (var memoryStream = new MemoryStream(partialData)) { partialProblem = (MmPartialProblem)_formatter.Deserialize(memoryStream); } var min = int.MaxValue; var max = int.MinValue; if (partialProblem.Numbers.Length > 0) { min = max = partialProblem.Numbers[0]; for (var i = 1; i < partialProblem.Numbers.Length; i++) { if (partialProblem.Numbers[i] < min) { min = partialProblem.Numbers[i]; } if (partialProblem.Numbers[i] > max) { max = partialProblem.Numbers[i]; } } } var solution = new MmSolution(min, max); using (var memoryStream = new MemoryStream()) { _formatter.Serialize(memoryStream, solution); return(memoryStream.ToArray()); } }
public override byte[] MergeSolution(byte[][] solutions) { var min = int.MaxValue; var max = int.MinValue; foreach (var t in solutions) { using (var memoryStream = new MemoryStream(t)) { var solution = (MmSolution)_formatter.Deserialize(memoryStream); if (solution.Min < min) { min = solution.Min; } if (solution.Max > max) { max = solution.Max; } } } var finalSolution = new MmSolution(min, max); using (var memoryStream = new MemoryStream()) { _formatter.Serialize(memoryStream, finalSolution); return(memoryStream.ToArray()); } }
public override byte[] MergeSolution(byte[][] solutions) { var min = int.MaxValue; var max = int.MinValue; foreach (var t in solutions) { using (var memoryStream = new MemoryStream(t)) { var solution = (MmSolution) _formatter.Deserialize(memoryStream); if (solution.Min < min) min = solution.Min; if (solution.Max > max) max = solution.Max; } } var finalSolution = new MmSolution(min, max); using (var memoryStream = new MemoryStream()) { _formatter.Serialize(memoryStream, finalSolution); return memoryStream.ToArray(); } }
public override byte[] Solve(byte[] partialData, TimeSpan timeout) { MmPartialProblem partialProblem; using (var memoryStream = new MemoryStream(partialData)) { partialProblem = (MmPartialProblem) _formatter.Deserialize(memoryStream); } var min = int.MaxValue; var max = int.MinValue; if (partialProblem.Numbers.Length > 0) { min = max = partialProblem.Numbers[0]; for (var i = 1; i < partialProblem.Numbers.Length; i++) { if (partialProblem.Numbers[i] < min) min = partialProblem.Numbers[i]; if (partialProblem.Numbers[i] > max) max = partialProblem.Numbers[i]; } } var solution = new MmSolution(min, max); using (var memoryStream = new MemoryStream()) { _formatter.Serialize(memoryStream, solution); return memoryStream.ToArray(); } }