Mercurial > hg > aoc
diff 2017/day23/problem @ 34:049fb8e56025
Add problem statements and inputs
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 09 Jan 2018 21:51:44 -0500 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/2017/day23/problem @@ -0,0 +1,58 @@ +--- Day 23: Coprocessor Conflagration --- + +You decide to head directly to the CPU and fix the printer from there. +As you get close, you find an experimental coprocessor doing so much +work that the local programs are afraid it will halt and catch fire. +This would cause serious issues for the rest of the computer, so you +head in and see what you can do. + +The code it's running seems to be a variant of the kind you saw +recently on that tablet. The general functionality seems very similar, +but some of the instructions are different: + + set X Y sets register X to the value of Y. + + sub X Y decreases register X by the value of Y. + + mul X Y sets register X to the result of multiplying the value + contained in register X by the value of Y. + + jnz X Y jumps with an offset of the value of Y, but only if the + value of X is not zero. (An offset of 2 skips the next + instruction, an offset of -1 jumps to the previous instruction, + and so on.) + + Only the instructions listed above are used. The eight registers + here, named a through h, all start at 0. + +The coprocessor is currently set to some kind of debug mode, which +allows for testing, but prevents it from doing any meaningful work. + +If you run the program (your puzzle input), how many times is the mul +instruction invoked? + +Your puzzle answer was 3025. + +--- Part Two --- + +Now, it's time to fix the problem. + +The debug mode switch is wired directly to register a. You flip the +switch, which makes register a now start at 1 when the program is +executed. + +Immediately, the coprocessor begins to overheat. Whoever wrote this +program obviously didn't choose a very efficient implementation. +You'll need to optimize the program if it has any hope of completing +before Santa needs that printer working. + +The coprocessor's ultimate goal is to determine the final value left +in register h once the program completes. Technically, if it had +that... it wouldn't even need to run the program. + +After setting register a to 1, if the program were to run to +completion, what value would be left in register h? + +Your puzzle answer was 915. + +Both parts of this puzzle are complete! They provide two gold stars: **