Cleanup
This commit is contained in:
193
2024/day14/problem
Normal file
193
2024/day14/problem
Normal file
@@ -0,0 +1,193 @@
|
||||
Advent of Code
|
||||
|
||||
--- Day 14: Restroom Redoubt ---
|
||||
|
||||
One of The Historians needs to use the bathroom; fortunately, you know
|
||||
there's a bathroom near an unvisited location on their list, and so you're
|
||||
all quickly teleported directly to the lobby of Easter Bunny Headquarters.
|
||||
|
||||
Unfortunately, EBHQ seems to have "improved" bathroom security again after
|
||||
your last [16]visit. The area outside the bathroom is swarming with
|
||||
robots!
|
||||
|
||||
To get The Historian safely to the bathroom, you'll need a way to predict
|
||||
where the robots will be in the future. Fortunately, they all seem to be
|
||||
moving on the tile floor in predictable straight lines.
|
||||
|
||||
You make a list (your puzzle input) of all of the robots' current
|
||||
positions (p) and velocities (v), one robot per line. For example:
|
||||
|
||||
p=0,4 v=3,-3
|
||||
p=6,3 v=-1,-3
|
||||
p=10,3 v=-1,2
|
||||
p=2,0 v=2,-1
|
||||
p=0,0 v=1,3
|
||||
p=3,0 v=-2,-2
|
||||
p=7,6 v=-1,-3
|
||||
p=3,0 v=-1,-2
|
||||
p=9,3 v=2,3
|
||||
p=7,3 v=-1,2
|
||||
p=2,4 v=2,-3
|
||||
p=9,5 v=-3,-3
|
||||
|
||||
Each robot's position is given as p=x,y where x represents the number of
|
||||
tiles the robot is from the left wall and y represents the number of tiles
|
||||
from the top wall (when viewed from above). So, a position of p=0,0 means
|
||||
the robot is all the way in the top-left corner.
|
||||
|
||||
Each robot's velocity is given as v=x,y where x and y are given in tiles
|
||||
per second. Positive x means the robot is moving to the right, and
|
||||
positive y means the robot is moving down. So, a velocity of v=1,-2 means
|
||||
that each second, the robot moves 1 tile to the right and 2 tiles up.
|
||||
|
||||
The robots outside the actual bathroom are in a space which is 101 tiles
|
||||
wide and 103 tiles tall (when viewed from above). However, in this
|
||||
example, the robots are in a space which is only 11 tiles wide and 7 tiles
|
||||
tall.
|
||||
|
||||
The robots are good at navigating over/under each other (due to a
|
||||
combination of springs, extendable legs, and quadcopters), so they can
|
||||
share the same tile and don't interact with each other. Visually, the
|
||||
number of robots on each tile in this example looks like this:
|
||||
|
||||
1.12.......
|
||||
...........
|
||||
...........
|
||||
......11.11
|
||||
1.1........
|
||||
.........1.
|
||||
.......1...
|
||||
|
||||
These robots have a unique feature for maximum bathroom security: they can
|
||||
teleport. When a robot would run into an edge of the space they're in,
|
||||
they instead teleport to the other side, effectively wrapping around the
|
||||
edges. Here is what robot p=2,4 v=2,-3 does for the first few seconds:
|
||||
|
||||
Initial state:
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
..1........
|
||||
...........
|
||||
...........
|
||||
|
||||
After 1 second:
|
||||
...........
|
||||
....1......
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
|
||||
After 2 seconds:
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
......1....
|
||||
...........
|
||||
|
||||
After 3 seconds:
|
||||
...........
|
||||
...........
|
||||
........1..
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
|
||||
After 4 seconds:
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
..........1
|
||||
|
||||
After 5 seconds:
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
.1.........
|
||||
...........
|
||||
...........
|
||||
...........
|
||||
|
||||
The Historian can't wait much longer, so you don't have to simulate the
|
||||
robots for very long. Where will the robots be after 100 seconds?
|
||||
|
||||
In the above example, the number of robots on each tile after 100 seconds
|
||||
has elapsed looks like this:
|
||||
|
||||
......2..1.
|
||||
...........
|
||||
1..........
|
||||
.11........
|
||||
.....1.....
|
||||
...12......
|
||||
.1....1....
|
||||
|
||||
To determine the safest area, count the number of robots in each quadrant
|
||||
after 100 seconds. Robots that are exactly in the middle (horizontally or
|
||||
vertically) don't count as being in any quadrant, so the only relevant
|
||||
robots are:
|
||||
|
||||
..... 2..1.
|
||||
..... .....
|
||||
1.... .....
|
||||
|
||||
..... .....
|
||||
...12 .....
|
||||
.1... 1....
|
||||
|
||||
In this example, the quadrants contain 1, 3, 4, and 1 robot. Multiplying
|
||||
these together gives a total safety factor of 12.
|
||||
|
||||
Predict the motion of the robots in your list within a space which is 101
|
||||
tiles wide and 103 tiles tall. What will the safety factor be after
|
||||
exactly 100 seconds have elapsed?
|
||||
|
||||
Your puzzle answer was 218965032.
|
||||
|
||||
--- Part Two ---
|
||||
|
||||
During the bathroom break, someone notices that these robots seem awfully
|
||||
similar to ones built and used at the North Pole. If they're the same type
|
||||
of robots, they should have a hard-coded Easter egg: very rarely, most of
|
||||
the robots should arrange themselves into a picture of a Christmas tree.
|
||||
|
||||
What is the fewest number of seconds that must elapse for the robots to
|
||||
display the Easter egg?
|
||||
|
||||
Your puzzle answer was 7037.
|
||||
|
||||
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.
|
||||
|
||||
References
|
||||
|
||||
Visible links
|
||||
1. https://adventofcode.com/
|
||||
2. https://adventofcode.com/2024/about
|
||||
3. https://adventofcode.com/2024/events
|
||||
4. https://cottonbureau.com/people/advent-of-code
|
||||
5. https://adventofcode.com/2024/settings
|
||||
6. https://adventofcode.com/2024/auth/logout
|
||||
7. Advent of Code Supporter
|
||||
https://adventofcode.com/2024/support
|
||||
8. https://adventofcode.com/2024
|
||||
9. https://adventofcode.com/2024
|
||||
10. https://adventofcode.com/2024/support
|
||||
12. https://adventofcode.com/2024/leaderboard
|
||||
13. https://adventofcode.com/2024/stats
|
||||
16. https://adventofcode.com/2016/day/2
|
||||
17. https://adventofcode.com/2024
|
||||
18. https://adventofcode.com/2024/day/14/input
|
Reference in New Issue
Block a user