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);
|