124 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Advent of Code
 | ||
| 
 | ||
| --- Day 12: Subterranean Sustainability ---
 | ||
| 
 | ||
|    The year 518 is significantly more underground than your history books implied. Either that, or you've arrived in a vast
 | ||
|    cavern network under the North Pole.
 | ||
| 
 | ||
|    After exploring a little, you discover a long tunnel that contains a row of small pots as far as you can see to your left
 | ||
|    and right. A few of them contain plants - someone is trying to grow things in these geothermally-heated caves.
 | ||
| 
 | ||
|    The pots are numbered, with 0 in front of you. To the left, the pots are numbered -1, -2, -3, and so on; to the right, 1, 2,
 | ||
|    3.... Your puzzle input contains a list of pots from 0 to the right and whether they do (#) or do not (.) currently contain
 | ||
|    a plant, the initial state. (No other pots currently contain plants.) For example, an initial state of #..##.... indicates
 | ||
|    that pots 0, 3, and 4 currently contain plants.
 | ||
| 
 | ||
|    Your puzzle input also contains some notes you find on a nearby table: someone has been trying to figure out how these
 | ||
|    plants spread to nearby pots. Based on the notes, for each generation of plants, a given pot has or does not have a plant
 | ||
|    based on whether that pot (and the two pots on either side of it) had a plant in the last generation. These are written as
 | ||
|    LLCRR => N, where L are pots to the left, C is the current pot being considered, R are the pots to the right, and N is
 | ||
|    whether the current pot will have a plant in the next generation. For example:
 | ||
| 
 | ||
|      • A note like ..#.. => . means that a pot that contains a plant but with no plants within two pots of it will not have a
 | ||
|        plant in it during the next generation.
 | ||
|      • A note like ##.## => . means that an empty pot with two plants on each side of it will remain empty in the next
 | ||
|        generation.
 | ||
|      • A note like .##.# => # means that a pot has a plant in a given generation if, in the previous generation, there were
 | ||
|        plants in that pot, the one immediately to the left, and the one two pots to the right, but not in the ones immediately
 | ||
|        to the right and two to the left.
 | ||
| 
 | ||
|    It's not clear what these plants are for, but you're sure it's important, so you'd like to make sure the current
 | ||
|    configuration of plants is sustainable by determining what will happen after 20 generations.
 | ||
| 
 | ||
|    For example, given the following input:
 | ||
| 
 | ||
|  initial state: #..#.#..##......###...###
 | ||
| 
 | ||
|  ...## => #
 | ||
|  ..#.. => #
 | ||
|  .#... => #
 | ||
|  .#.#. => #
 | ||
|  .#.## => #
 | ||
|  .##.. => #
 | ||
|  .#### => #
 | ||
|  #.#.# => #
 | ||
|  #.### => #
 | ||
|  ##.#. => #
 | ||
|  ##.## => #
 | ||
|  ###.. => #
 | ||
|  ###.# => #
 | ||
|  ####. => #
 | ||
| 
 | ||
|    For brevity, in this example, only the combinations which do produce a plant are listed. (Your input includes all possible
 | ||
|    combinations.) Then, the next 20 generations will look like this:
 | ||
| 
 | ||
|                   1         2         3
 | ||
|         0         0         0         0
 | ||
|   0: ...#..#.#..##......###...###...........
 | ||
|   1: ...#...#....#.....#..#..#..#...........
 | ||
|   2: ...##..##...##....#..#..#..##..........
 | ||
|   3: ..#.#...#..#.#....#..#..#...#..........
 | ||
|   4: ...#.#..#...#.#...#..#..##..##.........
 | ||
|   5: ....#...##...#.#..#..#...#...#.........
 | ||
|   6: ....##.#.#....#...#..##..##..##........
 | ||
|   7: ...#..###.#...##..#...#...#...#........
 | ||
|   8: ...#....##.#.#.#..##..##..##..##.......
 | ||
|   9: ...##..#..#####....#...#...#...#.......
 | ||
|  10: ..#.#..#...#.##....##..##..##..##......
 | ||
|  11: ...#...##...#.#...#.#...#...#...#......
 | ||
|  12: ...##.#.#....#.#...#.#..##..##..##.....
 | ||
|  13: ..#..###.#....#.#...#....#...#...#.....
 | ||
|  14: ..#....##.#....#.#..##...##..##..##....
 | ||
|  15: ..##..#..#.#....#....#..#.#...#...#....
 | ||
|  16: .#.#..#...#.#...##...#...#.#..##..##...
 | ||
|  17: ..#...##...#.#.#.#...##...#....#...#...
 | ||
|  18: ..##.#.#....#####.#.#.#...##...##..##..
 | ||
|  19: .#..###.#..#.#.#######.#.#.#..#.#...#..
 | ||
|  20: .#....##....#####...#######....#.#..##.
 | ||
| 
 | ||
|    The generation is shown along the left, where 0 is the initial state. The pot numbers are shown along the top, where 0
 | ||
|    labels the center pot, negative-numbered pots extend to the left, and positive pots extend toward the right. Remember, the
 | ||
|    initial state begins at pot 0, which is not the leftmost pot used in this example.
 | ||
| 
 | ||
|    After one generation, only seven plants remain. The one in pot 0 matched the rule looking for ..#.., the one in pot 4
 | ||
|    matched the rule looking for .#.#., pot 9 matched .##.., and so on.
 | ||
| 
 | ||
|    In this example, after 20 generations, the pots shown as # contain plants, the furthest left of which is pot -2, and the
 | ||
|    furthest right of which is pot 34. Adding up all the numbers of plant-containing pots after the 20th generation produces
 | ||
|    325.
 | ||
| 
 | ||
|    After 20 generations, what is the sum of the numbers of all pots which contain a plant?
 | ||
| 
 | ||
|    Your puzzle answer was 2281.
 | ||
| 
 | ||
| --- Part Two ---
 | ||
| 
 | ||
|    You realize that 20 generations aren't enough. After all, these plants will need to last another 1500 years to even reach
 | ||
|    your timeline, not to mention your future.
 | ||
| 
 | ||
|    After fifty billion (50000000000) generations, what is the sum of the numbers of all pots which contain a plant?
 | ||
| 
 | ||
|    Your puzzle answer was 2250000000120.
 | ||
| 
 | ||
|    Both parts of this puzzle are complete! They provide two gold stars: **
 | ||
| 
 | ||
| References
 | ||
| 
 | ||
|    Visible links
 | ||
|    . https://adventofcode.com/
 | ||
|    . https://adventofcode.com/2018/about
 | ||
|    . https://adventofcode.com/2018/events
 | ||
|    . https://adventofcode.com/2018/settings
 | ||
|    . https://adventofcode.com/2018/auth/logout
 | ||
|    . Advent of Code Supporter
 | ||
| 	https://adventofcode.com/2018/support
 | ||
|    . https://adventofcode.com/2018
 | ||
|    . https://adventofcode.com/2018
 | ||
|    . https://adventofcode.com/2018/support
 | ||
|    . https://adventofcode.com/2018/sponsors
 | ||
|    . https://adventofcode.com/2018/leaderboard
 | ||
|    . https://adventofcode.com/2018/stats
 | ||
|    . https://adventofcode.com/2018/sponsors
 | ||
|    . https://adventofcode.com/2018
 | ||
|    . https://adventofcode.com/2018/day/12/input
 |