# Advent of Code: Day 25

**Part 1:** Take the relation:

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

**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.

**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.

**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

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

**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).

**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.

**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.

**Part 1:** Simulate Conway's Game of Life. Count how many lights are on after 100 iterations.

**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.

**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.