204 lines
6.3 KiB
Plaintext
204 lines
6.3 KiB
Plaintext
|
[1]Advent of Code
|
|||
|
|
|||
|
• [2][About]
|
|||
|
• [3][Events]
|
|||
|
• [4][Shop]
|
|||
|
• [5][Settings]
|
|||
|
• [6][Log Out]
|
|||
|
|
|||
|
br0xen [7](AoC++) 28*
|
|||
|
|
|||
|
$year=[8]2023;
|
|||
|
|
|||
|
• [9][Calendar]
|
|||
|
• [10][AoC++]
|
|||
|
• [11][Sponsors]
|
|||
|
• [12][Leaderboard]
|
|||
|
• [13][Stats]
|
|||
|
|
|||
|
Our [14]sponsors help make Advent of Code possible:
|
|||
|
[15]Jane Street - Will our next great idea come from you? We hire smart,
|
|||
|
humble people who love to solve problems, build systems, and test
|
|||
|
theories. Our success is driven by our people and we never stop improving.
|
|||
|
|
|||
|
--- Day 14: Parabolic Reflector Dish ---
|
|||
|
|
|||
|
You reach the place where all of the mirrors were pointing: a massive
|
|||
|
[16]parabolic reflector dish attached to the side of another large
|
|||
|
mountain.
|
|||
|
|
|||
|
The dish is made up of many small mirrors, but while the mirrors
|
|||
|
themselves are roughly in the shape of a parabolic reflector dish, each
|
|||
|
individual mirror seems to be pointing in slightly the wrong direction. If
|
|||
|
the dish is meant to focus light, all it's doing right now is sending it
|
|||
|
in a vague direction.
|
|||
|
|
|||
|
This system must be what provides the energy for the lava! If you focus
|
|||
|
the reflector dish, maybe you can go where it's pointing and use the light
|
|||
|
to fix the lava production.
|
|||
|
|
|||
|
Upon closer inspection, the individual mirrors each appear to be connected
|
|||
|
via an elaborate system of ropes and pulleys to a large metal platform
|
|||
|
below the dish. The platform is covered in large rocks of various shapes.
|
|||
|
Depending on their position, the weight of the rocks deforms the platform,
|
|||
|
and the shape of the platform controls which ropes move and ultimately the
|
|||
|
focus of the dish.
|
|||
|
|
|||
|
In short: if you move the rocks, you can focus the dish. The platform even
|
|||
|
has a control panel on the side that lets you tilt it in one of four
|
|||
|
directions! The rounded rocks (O) will roll when the platform is tilted,
|
|||
|
while the cube-shaped rocks (#) will stay in place. You note the positions
|
|||
|
of all of the empty spaces (.) and rocks (your puzzle input). For example:
|
|||
|
|
|||
|
O....#....
|
|||
|
O.OO#....#
|
|||
|
.....##...
|
|||
|
OO.#O....O
|
|||
|
.O.....O#.
|
|||
|
O.#..O.#.#
|
|||
|
..O..#O..O
|
|||
|
.......O..
|
|||
|
#....###..
|
|||
|
#OO..#....
|
|||
|
|
|||
|
Start by tilting the lever so all of the rocks will slide north as far as
|
|||
|
they will go:
|
|||
|
|
|||
|
OOOO.#.O..
|
|||
|
OO..#....#
|
|||
|
OO..O##..O
|
|||
|
O..#.OO...
|
|||
|
........#.
|
|||
|
..#....#.#
|
|||
|
..O..#.O.O
|
|||
|
..O.......
|
|||
|
#....###..
|
|||
|
#....#....
|
|||
|
|
|||
|
You notice that the support beams along the north side of the platform are
|
|||
|
damaged; to ensure the platform doesn't collapse, you should calculate the
|
|||
|
total load on the north support beams.
|
|||
|
|
|||
|
The amount of load caused by a single rounded rock (O) is equal to the
|
|||
|
number of rows from the rock to the south edge of the platform, including
|
|||
|
the row the rock is on. (Cube-shaped rocks (#) don't contribute to load.)
|
|||
|
So, the amount of load caused by each rock in each row is as follows:
|
|||
|
|
|||
|
OOOO.#.O.. 10
|
|||
|
OO..#....# 9
|
|||
|
OO..O##..O 8
|
|||
|
O..#.OO... 7
|
|||
|
........#. 6
|
|||
|
..#....#.# 5
|
|||
|
..O..#.O.O 4
|
|||
|
..O....... 3
|
|||
|
#....###.. 2
|
|||
|
#....#.... 1
|
|||
|
|
|||
|
The total load is the sum of the load caused by all of the rounded rocks.
|
|||
|
In this example, the total load is 136.
|
|||
|
|
|||
|
Tilt the platform so that the rounded rocks all roll north. Afterward,
|
|||
|
what is the total load on the north support beams?
|
|||
|
|
|||
|
Your puzzle answer was 108813.
|
|||
|
|
|||
|
--- Part Two ---
|
|||
|
|
|||
|
The parabolic reflector dish deforms, but not in a way that focuses the
|
|||
|
beam. To do that, you'll need to move the rocks to the edges of the
|
|||
|
platform. Fortunately, a button on the side of the control panel labeled
|
|||
|
"spin cycle" attempts to do just that!
|
|||
|
|
|||
|
Each cycle tilts the platform four times so that the rounded rocks roll
|
|||
|
north, then west, then south, then east. After each tilt, the rounded
|
|||
|
rocks roll as far as they can before the platform tilts in the next
|
|||
|
direction. After one cycle, the platform will have finished rolling the
|
|||
|
rounded rocks in those four directions in that order.
|
|||
|
|
|||
|
Here's what happens in the example above after each of the first few
|
|||
|
cycles:
|
|||
|
|
|||
|
After 1 cycle:
|
|||
|
.....#....
|
|||
|
....#...O#
|
|||
|
...OO##...
|
|||
|
.OO#......
|
|||
|
.....OOO#.
|
|||
|
.O#...O#.#
|
|||
|
....O#....
|
|||
|
......OOOO
|
|||
|
#...O###..
|
|||
|
#..OO#....
|
|||
|
|
|||
|
After 2 cycles:
|
|||
|
.....#....
|
|||
|
....#...O#
|
|||
|
.....##...
|
|||
|
..O#......
|
|||
|
.....OOO#.
|
|||
|
.O#...O#.#
|
|||
|
....O#...O
|
|||
|
.......OOO
|
|||
|
#..OO###..
|
|||
|
#.OOO#...O
|
|||
|
|
|||
|
After 3 cycles:
|
|||
|
.....#....
|
|||
|
....#...O#
|
|||
|
.....##...
|
|||
|
..O#......
|
|||
|
.....OOO#.
|
|||
|
.O#...O#.#
|
|||
|
....O#...O
|
|||
|
.......OOO
|
|||
|
#...O###.O
|
|||
|
#.OOO#...O
|
|||
|
|
|||
|
This process should work if you leave it running long enough, but you're
|
|||
|
still worried about the north support beams. To make sure they'll survive
|
|||
|
for a while, you need to calculate the total load on the north support
|
|||
|
beams after 1000000000 cycles.
|
|||
|
|
|||
|
In the above example, after 1000000000 cycles, the total load on the north
|
|||
|
support beams is 64.
|
|||
|
|
|||
|
Run the spin cycle for 1000000000 cycles. Afterward, what is the total
|
|||
|
load on the north support beams?
|
|||
|
|
|||
|
Your puzzle answer was 104533.
|
|||
|
|
|||
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
|||
|
|
|||
|
At this point, you should [17]return to your Advent calendar and try
|
|||
|
another puzzle.
|
|||
|
|
|||
|
If you still want to see it, you can [18]get your puzzle input.
|
|||
|
|
|||
|
You can also [Shareon [19]Twitter [20]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.janestreet.com/
|
|||
|
16. https://en.wikipedia.org/wiki/Parabolic_reflector
|
|||
|
17. https://adventofcode.com/2023
|
|||
|
18. https://adventofcode.com/2023/day/14/input
|
|||
|
19. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Parabolic+Reflector+Dish%22+%2D+Day+14+%2D+Advent+of+Code+2023&url=https%3A%2F%2Fadventofcode%2Ecom%2F2023%2Fday%2F14&related=ericwastl&hashtags=AdventOfCode
|
|||
|
20. javascript:void(0);
|