about summary refs log tree commit diff
path: root/aoc2019/Day07.cs
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2021-11-09 16:52:21 -0500
committerBen Harris <ben@tilde.team>2021-11-09 16:52:21 -0500
commit2c9737d6d2821f1f46004965905d037ab00f6518 (patch)
tree50966a52514a98c4bdaf9f8d3532067ddcd855f8 /aoc2019/Day07.cs
parentbbd0d2b4db5f40ddf09c456f195e68f91251172c (diff)
update to .net 6
Diffstat (limited to 'aoc2019/Day07.cs')
-rw-r--r--aoc2019/Day07.cs93
1 files changed, 44 insertions, 49 deletions
diff --git a/aoc2019/Day07.cs b/aoc2019/Day07.cs
index 10684b9..4a45842 100644
--- a/aoc2019/Day07.cs
+++ b/aoc2019/Day07.cs
@@ -1,67 +1,62 @@
-using System.Collections.Generic;
-using System.Linq;
-using aoc2019.lib;
+namespace aoc2019;
 
-namespace aoc2019
+public sealed class Day07 : Day
 {
-    public sealed class Day07 : Day
+    private readonly IntCodeVM[] Amplifiers = new IntCodeVM[5];
+
+    public Day07() : base(7, "Amplification Circuit")
     {
-        private readonly IntCodeVM[] Amplifiers = new IntCodeVM[5];
+        for (var i = 0; i < 5; i++) Amplifiers[i] = new IntCodeVM(Input.First());
+    }
 
-        public Day07() : base(7, "Amplification Circuit")
-        {
-            for (var i = 0; i < 5; i++) Amplifiers[i] = new IntCodeVM(Input.First());
-        }
+    public override string Part1()
+    {
+        long i, largest = 0;
 
-        public override string Part1()
+        foreach (var phaseSeq in Enumerable.Range(0, 5).Permute())
         {
-            long i, largest = 0;
-
-            foreach (var phaseSeq in Enumerable.Range(0, 5).Permute())
+            i = 0;
+            foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq))
             {
-                i = 0;
-                foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq))
-                {
-                    vm.Reset();
-                    vm.Run(phase, i);
-                    i = vm.Result;
-                }
-
-                if (i > largest)
-                    largest = i;
+                vm.Reset();
+                vm.Run(phase, i);
+                i = vm.Result;
             }
 
-            return $"{largest}";
+            if (i > largest)
+                largest = i;
         }
 
-        public override string Part2()
-        {
-            long i, largest = 0;
+        return $"{largest}";
+    }
 
-            foreach (var phaseSeq in Enumerable.Range(5, 5).Permute())
-            {
-                i = 0;
-                foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq))
-                {
-                    vm.Reset();
-                    vm.AddInput(phase);
-                }
+    public override string Part2()
+    {
+        long i, largest = 0;
 
-                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;
-                }
+        foreach (var phaseSeq in Enumerable.Range(5, 5).Permute())
+        {
+            i = 0;
+            foreach (var (vm, phase) in Amplifiers.Zip(phaseSeq))
+            {
+                vm.Reset();
+                vm.AddInput(phase);
+            }
 
-                if (i > largest)
-                    largest = i;
+            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;
             }
 
-            return $"{largest}";
+            if (i > largest)
+                largest = i;
         }
+
+        return $"{largest}";
     }
-}
\ No newline at end of file
+}