protected override int SolvePartOne() { phaseSettingSequences = GetPermutations(new int[] { 0, 1, 2, 3, 4 }, 5); int maxThrusterSignal = 0; foreach (IEnumerable <int> phaseSettingSequence in phaseSettingSequences) { amplifiers = new Amplifier[5]; for (int i = 0; i < amplifiers.Length; i++) { amplifiers[i] = new Amplifier(intcodeProgram.Copy()); amplifiers[i].SetPhaseSetting(phaseSettingSequence.ElementAt(i)); } int output = 0; for (int i = 0; i < amplifiers.Length; i++) { amplifiers[i].SetInput(output); amplifiers[i].Execute(); output = amplifiers[i].GetOutput(); } if (output > maxThrusterSignal) { maxThrusterSignal = output; } } return(maxThrusterSignal); }