**Part 1:** Load a grid of empty cells (`.`

), east movers (`>`

), and south movers (`v`

). Each step, move all east movers than all south movers (only if they can this iteration). Wrap east/west and north/south. How many steps does it take the movers to get stuck?

read more...

**Part 1:** Simulate an ALU with 4 registers (`w`

, `x`

, `y`

, and `z`

) and instructions defined below. Find the largest 14 digit number with no 0 digits which result in `z=0`

.

read more...

**Part 1:** Given a series of 3D cubes that either turn ON all or turn OFF all points in their region, calculate how many points in the region (-50..50,-50..50,-50..50) are ON at the end.

read more...

**Part 1:** Given a 9->1 cellular automota update function (take the pixel and 8 surrounding pixels as a 9-bit index into the function) and a binary image, apply the function twice and count the number of ’lit’ pixels. Assume that the canvas is infinite.

read more...

**Part 1:** You will be given a series of Scanners, each of which will tell you the location (from their point of view) of a series of Beacons. Each Scanner may be flipped or rotated in increments of 90 degrees in any direction. Determine where each Scanner and Beacon is by overlaying the maps (with at least pairwise 12 matches).

read more...

**Part 1:** Given the following definition of Snailfish numbers, add a series of Snailfish numbers and return the magnitude of the result.

read more...

**Part 1:** Given a recursive binary packet definition (see below), parse the given packet. Return the sum of each packet’s `version`

.

read more...

**Part 1:** Given a list of edges in a bi-directional graph, count the number of paths from `start`

to `end`

such that nodes named with lowercase letters are visited once, and nodes with uppercase letters can be visited any number of times.

read more...

**Part 1:** Simulate a grid of numbers such that on each tick: advance all numbers by 1, any number that increases over 9 will ‘flash’ and add 1 to all neighbors (recursively, but each cell can only flash once) and then reset to 0. Count the number of flashes in the first 100 ticks.

read more...

**Part 1:** Given a sequence of () [] {}, and <> with nesting allowed. Find the first syntax error (where the wrong closing symbol is used). Scoring 3, 57, 1197, and 25137 respectively for each error, calculate the total error score.

read more...