410 lines
7.3 KiB
Plaintext
410 lines
7.3 KiB
Plaintext
Advent of Code
|
|
br0xen (AoC++) 43*
|
|
|
|
--- Day 17: Pyroclastic Flow ---
|
|
|
|
Your handheld device has located an alternative exit from the cave
|
|
for you and the elephants. The ground is rumbling almost
|
|
continuously now, but the strange valves bought you some time. It's
|
|
definitely getting warmer in here, though.
|
|
|
|
The tunnels eventually open into a very tall, narrow chamber. Large,
|
|
oddly-shaped rocks are falling into the chamber from above,
|
|
presumably due to all the rumbling. If you can't work out where the
|
|
rocks will fall next, you might be crushed!
|
|
|
|
The five types of rocks have the following peculiar shapes, where #
|
|
is rock and . is empty space:
|
|
|
|
####
|
|
|
|
.#.
|
|
###
|
|
.#.
|
|
|
|
..#
|
|
..#
|
|
###
|
|
|
|
#
|
|
#
|
|
#
|
|
#
|
|
|
|
##
|
|
##
|
|
|
|
The rocks fall in the order shown above: first the - shape, then the
|
|
+ shape, and so on. Once the end of the list is reached, the same
|
|
order repeats: the - shape falls first, sixth, 11th, 16th, etc.
|
|
|
|
The rocks don't spin, but they do get pushed around by jets of hot
|
|
gas coming out of the walls themselves. A quick scan reveals the
|
|
effect the jets of hot gas will have on the rocks as they fall (your
|
|
puzzle input).
|
|
|
|
For example, suppose this was the jet pattern in your cave:
|
|
|
|
>>><<><>><<<>><>>><<<>>><<<><<<>><>><<>>
|
|
|
|
In jet patterns, < means a push to the left, while > means a push to
|
|
the right. The pattern above means that the jets will push a falling
|
|
rock right, then right, then right, then left, then left, then
|
|
right, and so on. If the end of the list is reached, it repeats.
|
|
|
|
The tall, vertical chamber is exactly seven units wide. Each rock
|
|
appears so that its left edge is two units away from the left wall
|
|
and its bottom edge is three units above the highest rock in the
|
|
room (or the floor, if there isn't one).
|
|
|
|
After a rock appears, it alternates between being pushed by a jet of
|
|
hot gas one unit (in the direction indicated by the next symbol in
|
|
the jet pattern) and then falling one unit down. If any movement
|
|
would cause any part of the rock to move into the walls, floor, or a
|
|
stopped rock, the movement instead does not occur. If a downward
|
|
movement would have caused a falling rock to move into the floor or
|
|
an already-fallen rock, the falling rock stops where it is (having
|
|
landed on something) and a new rock immediately begins falling.
|
|
|
|
Drawing falling rocks with @ and stopped rocks with #, the jet
|
|
pattern in the example above manifests as follows:
|
|
|
|
The first rock begins falling:
|
|
|..@@@@.|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock right:
|
|
|...@@@@|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|...@@@@|
|
|
|.......|
|
|
|.......|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock right, but nothing happens:
|
|
|...@@@@|
|
|
|.......|
|
|
|.......|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|...@@@@|
|
|
|.......|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock right, but nothing happens:
|
|
|...@@@@|
|
|
|.......|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|...@@@@|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock left:
|
|
|..@@@@.|
|
|
+-------+
|
|
|
|
Rock falls 1 unit, causing it to come to rest:
|
|
|..####.|
|
|
+-------+
|
|
|
|
A new rock begins falling:
|
|
|...@...|
|
|
|..@@@..|
|
|
|...@...|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock left:
|
|
|..@....|
|
|
|.@@@...|
|
|
|..@....|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|..@....|
|
|
|.@@@...|
|
|
|..@....|
|
|
|.......|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock right:
|
|
|...@...|
|
|
|..@@@..|
|
|
|...@...|
|
|
|.......|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|...@...|
|
|
|..@@@..|
|
|
|...@...|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock left:
|
|
|..@....|
|
|
|.@@@...|
|
|
|..@....|
|
|
|.......|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Rock falls 1 unit:
|
|
|..@....|
|
|
|.@@@...|
|
|
|..@....|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Jet of gas pushes rock right:
|
|
|...@...|
|
|
|..@@@..|
|
|
|...@...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
Rock falls 1 unit, causing it to come to rest:
|
|
|...#...|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
A new rock begins falling:
|
|
|....@..|
|
|
|....@..|
|
|
|..@@@..|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|...#...|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
The moment each of the next few rocks begins falling, you would see
|
|
this:
|
|
|
|
|..@....|
|
|
|..@....|
|
|
|..@....|
|
|
|..@....|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|..#....|
|
|
|..#....|
|
|
|####...|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|..@@...|
|
|
|..@@...|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|..@@@@.|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|...@...|
|
|
|..@@@..|
|
|
|...@...|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|.####..|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|....@..|
|
|
|....@..|
|
|
|..@@@..|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|..#....|
|
|
|.###...|
|
|
|..#....|
|
|
|.####..|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|..@....|
|
|
|..@....|
|
|
|..@....|
|
|
|..@....|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|.....#.|
|
|
|.....#.|
|
|
|..####.|
|
|
|.###...|
|
|
|..#....|
|
|
|.####..|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|..@@...|
|
|
|..@@...|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|....#..|
|
|
|....#..|
|
|
|....##.|
|
|
|....##.|
|
|
|..####.|
|
|
|.###...|
|
|
|..#....|
|
|
|.####..|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
|..@@@@.|
|
|
|.......|
|
|
|.......|
|
|
|.......|
|
|
|....#..|
|
|
|....#..|
|
|
|....##.|
|
|
|##..##.|
|
|
|######.|
|
|
|.###...|
|
|
|..#....|
|
|
|.####..|
|
|
|....##.|
|
|
|....##.|
|
|
|....#..|
|
|
|..#.#..|
|
|
|..#.#..|
|
|
|#####..|
|
|
|..###..|
|
|
|...#...|
|
|
|..####.|
|
|
+-------+
|
|
|
|
To prove to the elephants your simulation is accurate, they want to
|
|
know how tall the tower will get after 2022 rocks have stopped (but
|
|
before the 2023rd rock begins falling). In this example, the tower
|
|
of rocks will be 3068 units tall.
|
|
|
|
How many units tall will the tower of rocks be after 2022 rocks have
|
|
stopped falling?
|
|
|
|
Your puzzle answer was 3081.
|
|
|
|
--- Part Two ---
|
|
|
|
The elephants are not impressed by your simulation. They demand to
|
|
know how tall the tower will be after 1000000000000 rocks have
|
|
stopped! Only then will they feel confident enough to proceed
|
|
through the cave.
|
|
|
|
In the example above, the tower would be 1514285714288 units tall!
|
|
|
|
How tall will the tower be after 1000000000000 rocks have stopped?
|
|
|
|
Your puzzle answer was 1524637681145.
|
|
|
|
Both parts of this puzzle are complete! They provide two gold stars:
|
|
**
|
|
|
|
References
|
|
|
|
Visible links
|
|
. https://adventofcode.com/
|
|
. https://adventofcode.com/2022/about
|
|
. https://adventofcode.com/2022/events
|
|
. https://adventofcode.com/2022/settings
|
|
. https://adventofcode.com/2022/auth/logout
|
|
. Advent of Code Supporter
|
|
https://adventofcode.com/2022/support
|
|
. https://adventofcode.com/2022
|
|
. https://adventofcode.com/2022
|
|
. https://adventofcode.com/2022/support
|
|
. https://adventofcode.com/2022/sponsors
|
|
. https://adventofcode.com/2022/leaderboard
|
|
. https://adventofcode.com/2022/stats
|
|
. https://adventofcode.com/2022/sponsors
|
|
. https://adventofcode.com/2022
|
|
. https://adventofcode.com/2022/day/17/input
|