252 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			252 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Advent of Code
 | |
| 
 | |
| --- Day 13: Mine Cart Madness ---
 | |
| 
 | |
|    A crop of this size requires significant logistics to transport produce, soil, fertilizer, and so on. The Elves are very busy pushing
 | |
|    things around in carts on some kind of rudimentary system of tracks they've come up with.
 | |
| 
 | |
|    Seeing as how cart-and-track systems don't appear in recorded history for another 1000 years, the Elves seem to be making this up as
 | |
|    they go along. They haven't even figured out how to avoid collisions yet.
 | |
| 
 | |
|    You map out the tracks (your puzzle input) and see where you can help.
 | |
| 
 | |
|    Tracks consist of straight paths (| and -), curves (/ and \), and intersections (+). Curves connect exactly two perpendicular pieces
 | |
|    of track; for example, this is a closed loop:
 | |
| 
 | |
|  /----\
 | |
|  |    |
 | |
|  |    |
 | |
|  \----/
 | |
| 
 | |
|    Intersections occur when two perpendicular paths cross. At an intersection, a cart is capable of turning left, turning right, or
 | |
|    continuing straight. Here are two loops connected by two intersections:
 | |
| 
 | |
|  /-----\
 | |
|  |     |
 | |
|  |  /--+--\
 | |
|  |  |  |  |
 | |
|  \--+--/  |
 | |
|     |     |
 | |
|     \-----/
 | |
| 
 | |
|    Several carts are also on the tracks. Carts always face either up (^), down (v), left (<), or right (>). (On your initial map, the
 | |
|    track under each cart is a straight path matching the direction the cart is facing.)
 | |
| 
 | |
|    Each time a cart has the option to turn (by arriving at any intersection), it turns left the first time, goes straight the second
 | |
|    time, turns right the third time, and then repeats those directions starting again with left the fourth time, straight the fifth
 | |
|    time, and so on. This process is independent of the particular intersection at which the cart has arrived - that is, the cart has no
 | |
|    per-intersection memory.
 | |
| 
 | |
|    Carts all move at the same speed; they take turns moving a single step at a time. They do this based on their current location: carts
 | |
|    on the top row move first (acting from left to right), then carts on the second row move (again from left to right), then carts on
 | |
|    the third row, and so on. Once each cart has moved one step, the process repeats; each of these loops is called a tick.
 | |
| 
 | |
|    For example, suppose there are two carts on a straight track:
 | |
| 
 | |
|  |  |  |  |  |
 | |
|  v  |  |  |  |
 | |
|  |  v  v  |  |
 | |
|  |  |  |  v  X
 | |
|  |  |  ^  ^  |
 | |
|  ^  ^  |  |  |
 | |
|  |  |  |  |  |
 | |
| 
 | |
|    First, the top cart moves. It is facing down (v), so it moves down one square. Second, the bottom cart moves. It is facing up (^), so
 | |
|    it moves up one square. Because all carts have moved, the first tick ends. Then, the process repeats, starting with the first cart.
 | |
|    The first cart moves down, then the second cart moves up - right into the first cart, colliding with it! (The location of the crash
 | |
|    is marked with an X.) This ends the second and last tick.
 | |
| 
 | |
|    Here is a longer example:
 | |
| 
 | |
|  /->-\
 | |
|  |   |  /----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | v  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /-->\
 | |
|  |   |  /----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \->--/
 | |
|    \------/
 | |
| 
 | |
|  /---v
 | |
|  |   |  /----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+>-/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   v  /----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+->/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----\
 | |
|  | /->--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+--^
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----\
 | |
|  | /-+>-+-\  |
 | |
|  | | |  | |  ^
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----\
 | |
|  | /-+->+-\  ^
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----<
 | |
|  | /-+-->-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /---<\
 | |
|  | /-+--+>\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /--<-\
 | |
|  | /-+--+-v  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /-<--\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | v  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /<---\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \-<--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  v----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  \<+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----\
 | |
|  | /-+--v-\  |
 | |
|  | | |  | |  |
 | |
|  \-+-/  ^-+--/
 | |
|    \------/
 | |
| 
 | |
|  /---\
 | |
|  |   |  /----\
 | |
|  | /-+--+-\  |
 | |
|  | | |  X |  |
 | |
|  \-+-/  \-+--/
 | |
|    \------/
 | |
| 
 | |
|    After following their respective paths for a while, the carts eventually crash. To help prevent crashes, you'd like to know the
 | |
|    location of the first crash. Locations are given in X,Y coordinates, where the furthest left column is X=0 and the furthest top row
 | |
|    is Y=0:
 | |
| 
 | |
|             111
 | |
|   0123456789012
 | |
|  0/---\
 | |
|  1|   |  /----\
 | |
|  2| /-+--+-\  |
 | |
|  3| | |  X |  |
 | |
|  4\-+-/  \-+--/
 | |
|  5  \------/
 | |
| 
 | |
|    In this example, the location of the first crash is 7,3.
 | |
| 
 | |
|    Your puzzle answer was 83,106.
 | |
| 
 | |
| --- Part Two ---
 | |
| 
 | |
|    There isn't much you can do to prevent crashes in this ridiculous system. However, by predicting the crashes, the Elves know where to
 | |
|    be in advance and instantly remove the two crashing carts the moment any crash occurs.
 | |
| 
 | |
|    They can proceed like this for a while, but eventually, they're going to run out of carts. It could be useful to figure out where the
 | |
|    last cart that hasn't crashed will end up.
 | |
| 
 | |
|    For example:
 | |
| 
 | |
|  />-<\
 | |
|  |   |
 | |
|  | /<+-\
 | |
|  | | | v
 | |
|  \>+</ |
 | |
|    |   ^
 | |
|    \<->/
 | |
| 
 | |
|  /---\
 | |
|  |   |
 | |
|  | v-+-\
 | |
|  | | | |
 | |
|  \-+-/ |
 | |
|    |   |
 | |
|    ^---^
 | |
| 
 | |
|  /---\
 | |
|  |   |
 | |
|  | /-+-\
 | |
|  | v | |
 | |
|  \-+-/ |
 | |
|    ^   ^
 | |
|    \---/
 | |
| 
 | |
|  /---\
 | |
|  |   |
 | |
|  | /-+-\
 | |
|  | | | |
 | |
|  \-+-/ ^
 | |
|    |   |
 | |
|    \---/
 | |
| 
 | |
|    After four very expensive crashes, a tick ends with only one cart remaining; its final location is 6,4.
 | |
| 
 | |
|    What is the location of the last cart at the end of the first tick where it is the only cart left?
 | |
| 
 | |
|    Your puzzle answer was 132,26.
 | |
| 
 | |
|    Both parts of this puzzle are complete! They provide two gold stars: **
 | |
| 
 | |
| References
 | |
| 
 | |
|    Visible links
 | |
|    . https://adventofcode.com/
 | |
|    . https://adventofcode.com/2018/about
 | |
|    . https://adventofcode.com/2018/events
 | |
|    . https://adventofcode.com/2018/settings
 | |
|    . https://adventofcode.com/2018/auth/logout
 | |
|    . Advent of Code Supporter
 | |
| 	https://adventofcode.com/2018/support
 | |
|    . https://adventofcode.com/2018
 | |
|    . https://adventofcode.com/2018
 | |
|    . https://adventofcode.com/2018/support
 | |
|    . https://adventofcode.com/2018/sponsors
 | |
|    . https://adventofcode.com/2018/leaderboard
 | |
|    . https://adventofcode.com/2018/stats
 | |
|    . https://adventofcode.com/2018/sponsors
 | |
|    . https://adventofcode.com/2018
 | |
|    . https://adventofcode.com/2018/day/13/input
 |