# Advent of Code: Day 25

Source

Part 1: Take the relation:

F(n) = \left\{\begin{matrix} 20151225 & \textrm{if}\ n = 1 \\ 252533F(n-1) \mod 33554393 & \textrm{otherwise} \end{matrix}\right.

Arrange the values according to Cantor's diagonal argument. Find the value at a specific cell.

# Advent of Code: Day 24

Source

Part 1: Split a list of integers into three groups of equal sum. Find the grouping such that the smallest group has the least items, breaking ties by the smallest product for that group.

# Advent of Code: Day 23

Source

Part 1: Create a simple virtual machine with two registers (a and b, non-negative integers) and six instructions:

• hlf (a|b) - divide the given register by half, round down
• tpl (a|b) - triple the given register
• inc (a|b) - add 1 to the given register
• jmp [+-]\d+ - jump forward/backwards by the given number of instructions
• jie (a|b), [+-]\d+ - if the given register is even, jump
• jio (a|b), [+-]\d+ - if the given register equals one, jump

# Advent of Code: Day 22

Source

Part 1: Simulate an RPG mage battle; finding the winning solution using the least mana. See the original writeup for more details.

# Advent of Code: Day 21

Source

Part 1: Given a shop full of weapons (buy exactly one), armor (buy zero or one), and rings (buy 0, 1, or 2), determine the set of items that will defeat a given enemy for the minimum cost (see the original writeup for more details).

# Advent of Code: Day 20

Source

Part 1: P(n) is defined such that for each number i, add 10i to any number divisible by i. Find the first value n such that P(n) is at least a given target number.

# Advent of Code: Day 19

Source

Part 1: Given a list of list of string replacements and an input string, determine how many unique output strings are possible after one step.

# Advent of Code: Day 17

Source

Part 1: Given a list of containers of varying sizes and a total volume to contain, determine how many different combinations of containers match exactly the given volume.

# Advent of Code: Day 16

Source

Part 1: Given a list of target values of the form:

children: 3
cats: 7
samoyeds: 2


And a list of ‘Aunt Sues’, each with known values:

Sue 1: children: 1, cars: 8, vizslas: 7
Sue 2: akitas: 10, perfumes: 10, children: 5
Sue 3: cars: 5, pomeranians: 4, vizslas: 1


Determine which Sue has no unset but matching values.

For example, Sue 1 is invalid because children is 1 versus 3 and Sue 2 because children is 5 versus 3. Given only the values above, Sue 3 would be valid since there are no contradictions.