204 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|                                [1]Advent of Code
 | ||
| 
 | ||
|      • [2][About]
 | ||
|      • [3][Events]
 | ||
|      • [4][Shop]
 | ||
|      • [5][Settings]
 | ||
|      • [6][Log Out]
 | ||
| 
 | ||
|    br0xen [7](AoC++) 32*
 | ||
| 
 | ||
|                                       λy.[8]2023
 | ||
| 
 | ||
|      • [9][Calendar]
 | ||
|      • [10][AoC++]
 | ||
|      • [11][Sponsors]
 | ||
|      • [12][Leaderboard]
 | ||
|      • [13][Stats]
 | ||
| 
 | ||
|    Our [14]sponsors help make Advent of Code possible:
 | ||
|    [15]JPMorgan Chase - With over 57,000 technologists globally and an annual
 | ||
|    tech spend of $15 billion, JPMorgan Chase is dedicated to improving the
 | ||
|    design, analytics, coding and testing that goes into creating high quality
 | ||
|    software products.
 | ||
| 
 | ||
| --- Day 16: The Floor Will Be Lava ---
 | ||
| 
 | ||
|    With the beam of light completely focused somewhere, the reindeer leads
 | ||
|    you deeper still into the Lava Production Facility. At some point, you
 | ||
|    realize that the steel facility walls have been replaced with cave, and
 | ||
|    the doorways are just cave, and the floor is cave, and you're pretty sure
 | ||
|    this is actually just a giant cave.
 | ||
| 
 | ||
|    Finally, as you approach what must be the heart of the mountain, you see a
 | ||
|    bright light in a cavern up ahead. There, you discover that the beam of
 | ||
|    light you so carefully focused is emerging from the cavern wall closest to
 | ||
|    the facility and pouring all of its energy into a contraption on the
 | ||
|    opposite side.
 | ||
| 
 | ||
|    Upon closer inspection, the contraption appears to be a flat,
 | ||
|    two-dimensional square grid containing empty space (.), mirrors (/ and \),
 | ||
|    and splitters (| and -).
 | ||
| 
 | ||
|    The contraption is aligned so that most of the beam bounces around the
 | ||
|    grid, but each tile on the grid converts some of the beam's light into
 | ||
|    heat to melt the rock in the cavern.
 | ||
| 
 | ||
|    You note the layout of the contraption (your puzzle input). For example:
 | ||
| 
 | ||
|  .|...\....
 | ||
|  |.-.\.....
 | ||
|  .....|-...
 | ||
|  ........|.
 | ||
|  ..........
 | ||
|  .........\
 | ||
|  ..../.\\..
 | ||
|  .-.-/..|..
 | ||
|  .|....-|.\
 | ||
|  ..//.|....
 | ||
| 
 | ||
|    The beam enters in the top-left corner from the left and heading to the
 | ||
|    right. Then, its behavior depends on what it encounters as it moves:
 | ||
| 
 | ||
|      • If the beam encounters empty space (.), it continues in the same
 | ||
|        direction.
 | ||
|      • If the beam encounters a mirror (/ or \), the beam is reflected 90
 | ||
|        degrees depending on the angle of the mirror. For instance, a
 | ||
|        rightward-moving beam that encounters a / mirror would continue upward
 | ||
|        in the mirror's column, while a rightward-moving beam that encounters
 | ||
|        a \ mirror would continue downward from the mirror's column.
 | ||
|      • If the beam encounters the pointy end of a splitter (| or -), the beam
 | ||
|        passes through the splitter as if the splitter were empty space. For
 | ||
|        instance, a rightward-moving beam that encounters a - splitter would
 | ||
|        continue in the same direction.
 | ||
|      • If the beam encounters the flat side of a splitter (| or -), the beam
 | ||
|        is split into two beams going in each of the two directions the
 | ||
|        splitter's pointy ends are pointing. For instance, a rightward-moving
 | ||
|        beam that encounters a | splitter would split into two beams: one that
 | ||
|        continues upward from the splitter's column and one that continues
 | ||
|        downward from the splitter's column.
 | ||
| 
 | ||
|    Beams do not interact with other beams; a tile can have many beams passing
 | ||
|    through it at the same time. A tile is energized if that tile has at least
 | ||
|    one beam pass through it, reflect in it, or split in it.
 | ||
| 
 | ||
|    In the above example, here is how the beam of light bounces around the
 | ||
|    contraption:
 | ||
| 
 | ||
|  >|<<<\....
 | ||
|  |v-.\^....
 | ||
|  .v...|->>>
 | ||
|  .v...v^.|.
 | ||
|  .v...v^...
 | ||
|  .v...v^..\
 | ||
|  .v../2\\..
 | ||
|  <->-/vv|..
 | ||
|  .|<<<2-|.\
 | ||
|  .v//.|.v..
 | ||
| 
 | ||
|    Beams are only shown on empty tiles; arrows indicate the direction of the
 | ||
|    beams. If a tile contains beams moving in multiple directions, the number
 | ||
|    of distinct directions is shown instead. Here is the same diagram but
 | ||
|    instead only showing whether a tile is energized (#) or not (.):
 | ||
| 
 | ||
|  ######....
 | ||
|  .#...#....
 | ||
|  .#...#####
 | ||
|  .#...##...
 | ||
|  .#...##...
 | ||
|  .#...##...
 | ||
|  .#..####..
 | ||
|  ########..
 | ||
|  .#######..
 | ||
|  .#...#.#..
 | ||
| 
 | ||
|    Ultimately, in this example, 46 tiles become energized.
 | ||
| 
 | ||
|    The light isn't energizing enough tiles to produce lava; to debug the
 | ||
|    contraption, you need to start by analyzing the current situation. With
 | ||
|    the beam starting in the top-left heading right, how many tiles end up
 | ||
|    being energized?
 | ||
| 
 | ||
|    Your puzzle answer was 6816.
 | ||
| 
 | ||
| --- Part Two ---
 | ||
| 
 | ||
|    As you try to work out what might be wrong, the reindeer tugs on your
 | ||
|    shirt and leads you to a nearby control panel. There, a collection of
 | ||
|    buttons lets you align the contraption so that the beam enters from any
 | ||
|    edge tile and heading away from that edge. (You can choose either of two
 | ||
|    directions for the beam if it starts on a corner; for instance, if the
 | ||
|    beam starts in the bottom-right corner, it can start heading either left
 | ||
|    or upward.)
 | ||
| 
 | ||
|    So, the beam could start on any tile in the top row (heading downward),
 | ||
|    any tile in the bottom row (heading upward), any tile in the leftmost
 | ||
|    column (heading right), or any tile in the rightmost column (heading
 | ||
|    left). To produce lava, you need to find the configuration that energizes
 | ||
|    as many tiles as possible.
 | ||
| 
 | ||
|    In the above example, this can be achieved by starting the beam in the
 | ||
|    fourth tile from the left in the top row:
 | ||
| 
 | ||
|  .|<2<\....
 | ||
|  |v-v\^....
 | ||
|  .v.v.|->>>
 | ||
|  .v.v.v^.|.
 | ||
|  .v.v.v^...
 | ||
|  .v.v.v^..\
 | ||
|  .v.v/2\\..
 | ||
|  <-2-/vv|..
 | ||
|  .|<<<2-|.\
 | ||
|  .v//.|.v..
 | ||
| 
 | ||
|    Using this configuration, 51 tiles are energized:
 | ||
| 
 | ||
|  .#####....
 | ||
|  .#.#.#....
 | ||
|  .#.#.#####
 | ||
|  .#.#.##...
 | ||
|  .#.#.##...
 | ||
|  .#.#.##...
 | ||
|  .#.#####..
 | ||
|  ########..
 | ||
|  .#######..
 | ||
|  .#...#.#..
 | ||
| 
 | ||
|    Find the initial beam configuration that energizes the largest number of
 | ||
|    tiles; how many tiles are energized in that configuration?
 | ||
| 
 | ||
|    Your puzzle answer was 8163.
 | ||
| 
 | ||
|    Both parts of this puzzle are complete! They provide two gold stars: **
 | ||
| 
 | ||
|    At this point, you should [16]return to your Advent calendar and try
 | ||
|    another puzzle.
 | ||
| 
 | ||
|    If you still want to see it, you can [17]get your puzzle input.
 | ||
| 
 | ||
|    You can also [Shareon [18]Twitter [19]Mastodon] this puzzle.
 | ||
| 
 | ||
| References
 | ||
| 
 | ||
|    Visible links
 | ||
|    1. https://adventofcode.com/
 | ||
|    2. https://adventofcode.com/2023/about
 | ||
|    3. https://adventofcode.com/2023/events
 | ||
|    4. https://teespring.com/stores/advent-of-code
 | ||
|    5. https://adventofcode.com/2023/settings
 | ||
|    6. https://adventofcode.com/2023/auth/logout
 | ||
|    7. Advent of Code Supporter
 | ||
| 	https://adventofcode.com/2023/support
 | ||
|    8. https://adventofcode.com/2023
 | ||
|    9. https://adventofcode.com/2023
 | ||
|   10. https://adventofcode.com/2023/support
 | ||
|   11. https://adventofcode.com/2023/sponsors
 | ||
|   12. https://adventofcode.com/2023/leaderboard
 | ||
|   13. https://adventofcode.com/2023/stats
 | ||
|   14. https://adventofcode.com/2023/sponsors
 | ||
|   15. https://www.jpmorgan.com/
 | ||
|   16. https://adventofcode.com/2023
 | ||
|   17. https://adventofcode.com/2023/day/16/input
 | ||
|   18. https://twitter.com/intent/tweet?text=I%27ve+completed+%22The+Floor+Will+Be+Lava%22+%2D+Day+16+%2D+Advent+of+Code+2023&url=https%3A%2F%2Fadventofcode%2Ecom%2F2023%2Fday%2F16&related=ericwastl&hashtags=AdventOfCode
 | ||
|   19. javascript:void(0);
 |