diff options
author | Ben Harris <ben@tilde.team> | 2020-12-16 17:17:35 -0500 |
---|---|---|
committer | Ben Harris <ben@tilde.team> | 2020-12-16 17:17:35 -0500 |
commit | 837527d487c7e232b36dd87c95a15b7852f2e057 (patch) | |
tree | 21ddf9a63548ccc8c802fe5f158f3e6743a8e9f1 /Day7.cs | |
parent | c66d1d6b335e6c2f6b544ae31793f318ba2b99a7 (diff) |
refactor to two-digit day names and add puzzlename
Diffstat (limited to 'Day7.cs')
-rw-r--r-- | Day7.cs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/Day7.cs b/Day7.cs deleted file mode 100644 index e600361..0000000 --- a/Day7.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using aoc2019.lib; - -namespace aoc2019 -{ - internal sealed class Day7 : Day - { - private readonly IntCodeVM[] Amplifiers = new IntCodeVM[5]; - - public Day7() - { - for (var i = 0; i < 5; i++) Amplifiers[i] = new IntCodeVM(Input.First()); - } - - public override int DayNumber => 7; - - - protected override string Part1() - { - long i, largest = 0; - - foreach (var phaseSeq in Enumerable.Range(0, 5).Permute()) - { - i = 0; - foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq)) - { - vm.Reset(); - vm.Run(phase, i); - i = vm.Result; - } - - if (i > largest) - largest = i; - } - - return $"{largest}"; - } - - protected override string Part2() - { - long i, largest = 0; - - foreach (var phaseSeq in Enumerable.Range(5, 5).Permute()) - { - i = 0; - foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq)) - { - vm.Reset(); - vm.AddInput(phase); - } - - var vms = new Queue<IntCodeVM>(Amplifiers); - while (vms.Count > 0) - { - var vm = vms.Dequeue(); - var haltType = vm.Run(i); - if (haltType == IntCodeVM.HaltType.Waiting) - vms.Enqueue(vm); - i = vm.Result; - } - - if (i > largest) - largest = i; - } - - return $"{largest}"; - } - } -} \ No newline at end of file |