194 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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
 |