using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace aoc2019 { public class Day2 : Day { private static readonly IEnumerable input = File.ReadLines("input/day2.in") .First() .Split(',') .Select(num => int.Parse(num)); public static void RunIntCode(ref List v) { for (var i = 0; v[i] != 99; i += 4) switch (v[i]) { case 1: v[v[i + 3]] = v[v[i + 1]] + v[v[i + 2]]; break; case 2: v[v[i + 3]] = v[v[i + 1]] * v[v[i + 2]]; break; } } public override void Part1() { var output = input.ToList(); output[1] = 12; output[2] = 2; RunIntCode(ref output); Console.WriteLine($"{output[0]}"); } public override void Part2() { List output; for (var i = 0; i < 100; i++) { for (var j = 0; j < 100; j++) { output = input.ToList(); output[1] = i; output[2] = j; RunIntCode(ref output); if (output[0] == 19690720) { Console.WriteLine($"{100 * i + j}"); return; } } } } } }