178 lines
3.8 KiB
Plaintext
178 lines
3.8 KiB
Plaintext
Advent of Code
|
||
|
||
--- Day 18: Like a GIF For Your Yard ---
|
||
|
||
After the million lights incident, the fire code has gotten stricter: now,
|
||
at most ten thousand lights are allowed. You arrange them in a 100x100 grid.
|
||
|
||
Never one to let you down, Santa again mails you instructions on the ideal
|
||
lighting configuration. With so few lights, he says, you'll have to resort
|
||
to animation.
|
||
|
||
Start by setting your lights to the included initial configuration (your
|
||
puzzle input). A # means "on", and a . means "off".
|
||
|
||
Then, animate your grid in steps, where each step decides the next
|
||
configuration based on the current one. Each light's next state (either on
|
||
or off) depends on its current state and the current states of the eight
|
||
lights adjacent to it (including diagonals). Lights on the edge of the grid
|
||
might have fewer than eight neighbors; the missing ones always count as
|
||
"off".
|
||
|
||
For example, in a simplified 6x6 grid, the light marked A has the neighbors
|
||
numbered 1 through 8, and the light marked B, which is on an edge, only has
|
||
the neighbors marked 1 through 5:
|
||
|
||
1B5...
|
||
234...
|
||
......
|
||
..123.
|
||
..8A4.
|
||
..765.
|
||
|
||
The state a light should have next is based on its current state (on or off)
|
||
plus the number of neighbors that are on:
|
||
|
||
• A light which is on stays on when 2 or 3 neighbors are on, and turns off
|
||
otherwise.
|
||
|
||
• A light which is off turns on if exactly 3 neighbors are on, and stays
|
||
off otherwise.
|
||
|
||
All of the lights update simultaneously; they all consider the same current
|
||
state before moving to the next.
|
||
|
||
Here's a few steps from an example configuration of another 6x6 grid:
|
||
|
||
Initial state:
|
||
.#.#.#
|
||
...##.
|
||
#....#
|
||
..#...
|
||
#.#..#
|
||
####..
|
||
|
||
After 1 step:
|
||
..##..
|
||
..##.#
|
||
...##.
|
||
......
|
||
#.....
|
||
#.##..
|
||
|
||
After 2 steps:
|
||
..###.
|
||
......
|
||
..###.
|
||
......
|
||
.#....
|
||
.#....
|
||
|
||
After 3 steps:
|
||
...#..
|
||
......
|
||
...#..
|
||
..##..
|
||
......
|
||
......
|
||
|
||
After 4 steps:
|
||
......
|
||
......
|
||
..##..
|
||
..##..
|
||
......
|
||
......
|
||
|
||
After 4 steps, this example has four lights on.
|
||
|
||
In your grid of 100x100 lights, given your initial configuration, how many
|
||
lights are on after 100 steps?
|
||
|
||
Your puzzle answer was 814.
|
||
|
||
--- Part Two ---
|
||
|
||
You flip the instructions over; Santa goes on to point out that this is all
|
||
just an implementation of Conway's Game of Life. At least, it was, until you
|
||
notice that something's wrong with the grid of lights you bought: four
|
||
lights, one in each corner, are stuck on and can't be turned off. The
|
||
example above will actually run like this:
|
||
|
||
Initial state:
|
||
##.#.#
|
||
...##.
|
||
#....#
|
||
..#...
|
||
#.#..#
|
||
####.#
|
||
|
||
After 1 step:
|
||
#.##.#
|
||
####.#
|
||
...##.
|
||
......
|
||
#...#.
|
||
#.####
|
||
|
||
After 2 steps:
|
||
#..#.#
|
||
#....#
|
||
.#.##.
|
||
...##.
|
||
.#..##
|
||
##.###
|
||
|
||
After 3 steps:
|
||
#...##
|
||
####.#
|
||
..##.#
|
||
......
|
||
##....
|
||
####.#
|
||
|
||
After 4 steps:
|
||
#.####
|
||
#....#
|
||
...#..
|
||
.##...
|
||
#.....
|
||
#.#..#
|
||
|
||
After 5 steps:
|
||
##.###
|
||
.##..#
|
||
.##...
|
||
.##...
|
||
#.#...
|
||
##...#
|
||
|
||
After 5 steps, this example now has 17 lights on.
|
||
|
||
In your grid of 100x100 lights, given your initial configuration, but with
|
||
the four corners always in the on state, how many lights are on after 100
|
||
steps?
|
||
|
||
Your puzzle answer was 924.
|
||
|
||
Both parts of this puzzle are complete! They provide two gold stars: **
|
||
|
||
At this point, you should return to your advent calendar and try another
|
||
puzzle.
|
||
|
||
If you still want to see it, you can get your puzzle input.
|
||
|
||
References
|
||
|
||
Visible links
|
||
. http://adventofcode.com/
|
||
. http://adventofcode.com/about
|
||
. http://adventofcode.com/stats
|
||
. http://adventofcode.com/leaderboard
|
||
. http://adventofcode.com/settings
|
||
. http://adventofcode.com/auth/logout
|
||
. http://adventofcode.com/day/6
|
||
. https://en.wikipedia.org/wiki/Conway's_Game_of_Life
|
||
. http://adventofcode.com/
|
||
. http://adventofcode.com/day/18/input
|