179 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Advent of Code
 | |
| br0xen (AoC++) 32*
 | |
| 
 | |
| --- Day 15: Beacon Exclusion Zone ---
 | |
| 
 | |
|    You feel the ground rumble again as the distress signal leads you to a
 | |
|    large network of subterranean tunnels. You don't have time to search them
 | |
|    all, but you don't need to: your pack contains a set of deployable sensors
 | |
|    that you imagine were originally built to locate lost Elves.
 | |
| 
 | |
|    The sensors aren't very powerful, but that's okay; your handheld device
 | |
|    indicates that you're close enough to the source of the distress signal to
 | |
|    use them. You pull the emergency sensor system out of your pack, hit the
 | |
|    big button on top, and the sensors zoom off down the tunnels.
 | |
| 
 | |
|    Once a sensor finds a spot it thinks will give it a good reading, it
 | |
|    attaches itself to a hard surface and begins monitoring for the nearest
 | |
|    signal source beacon. Sensors and beacons always exist at integer
 | |
|    coordinates. Each sensor knows its own position and can determine the
 | |
|    position of a beacon precisely; however, sensors can only lock on to the
 | |
|    one beacon closest to the sensor as measured by the Manhattan distance.
 | |
|    (There is never a tie where two beacons are the same distance to a
 | |
|    sensor.)
 | |
| 
 | |
|    It doesn't take long for the sensors to report back their positions and
 | |
|    closest beacons (your puzzle input). For example:
 | |
| 
 | |
|  Sensor at x=2, y=18: closest beacon is at x=-2, y=15
 | |
|  Sensor at x=9, y=16: closest beacon is at x=10, y=16
 | |
|  Sensor at x=13, y=2: closest beacon is at x=15, y=3
 | |
|  Sensor at x=12, y=14: closest beacon is at x=10, y=16
 | |
|  Sensor at x=10, y=20: closest beacon is at x=10, y=16
 | |
|  Sensor at x=14, y=17: closest beacon is at x=10, y=16
 | |
|  Sensor at x=8, y=7: closest beacon is at x=2, y=10
 | |
|  Sensor at x=2, y=0: closest beacon is at x=2, y=10
 | |
|  Sensor at x=0, y=11: closest beacon is at x=2, y=10
 | |
|  Sensor at x=20, y=14: closest beacon is at x=25, y=17
 | |
|  Sensor at x=17, y=20: closest beacon is at x=21, y=22
 | |
|  Sensor at x=16, y=7: closest beacon is at x=15, y=3
 | |
|  Sensor at x=14, y=3: closest beacon is at x=15, y=3
 | |
|  Sensor at x=20, y=1: closest beacon is at x=15, y=3
 | |
| 
 | |
|    So, consider the sensor at 2,18; the closest beacon to it is at -2,15. For
 | |
|    the sensor at 9,16, the closest beacon to it is at 10,16.
 | |
| 
 | |
|    Drawing sensors as S and beacons as B, the above arrangement of sensors
 | |
|    and beacons looks like this:
 | |
| 
 | |
|                 1    1    2    2
 | |
|       0    5    0    5    0    5
 | |
|   0 ....S.......................
 | |
|   1 ......................S.....
 | |
|   2 ...............S............
 | |
|   3 ................SB..........
 | |
|   4 ............................
 | |
|   5 ............................
 | |
|   6 ............................
 | |
|   7 ..........S.......S.........
 | |
|   8 ............................
 | |
|   9 ............................
 | |
|  10 ....B.......................
 | |
|  11 ..S.........................
 | |
|  12 ............................
 | |
|  13 ............................
 | |
|  14 ..............S.......S.....
 | |
|  15 B...........................
 | |
|  16 ...........SB...............
 | |
|  17 ................S..........B
 | |
|  18 ....S.......................
 | |
|  19 ............................
 | |
|  20 ............S......S........
 | |
|  21 ............................
 | |
|  22 .......................B....
 | |
| 
 | |
|    This isn't necessarily a comprehensive map of all beacons in the area,
 | |
|    though. Because each sensor only identifies its closest beacon, if a
 | |
|    sensor detects a beacon, you know there are no other beacons that close or
 | |
|    closer to that sensor. There could still be beacons that just happen to
 | |
|    not be the closest beacon to any sensor. Consider the sensor at 8,7:
 | |
| 
 | |
|                 1    1    2    2
 | |
|       0    5    0    5    0    5
 | |
|  -2 ..........#.................
 | |
|  -1 .........###................
 | |
|   0 ....S...#####...............
 | |
|   1 .......#######........S.....
 | |
|   2 ......#########S............
 | |
|   3 .....###########SB..........
 | |
|   4 ....#############...........
 | |
|   5 ...###############..........
 | |
|   6 ..#################.........
 | |
|   7 .#########S#######S#........
 | |
|   8 ..#################.........
 | |
|   9 ...###############..........
 | |
|  10 ....B############...........
 | |
|  11 ..S..###########............
 | |
|  12 ......#########.............
 | |
|  13 .......#######..............
 | |
|  14 ........#####.S.......S.....
 | |
|  15 B........###................
 | |
|  16 ..........#SB...............
 | |
|  17 ................S..........B
 | |
|  18 ....S.......................
 | |
|  19 ............................
 | |
|  20 ............S......S........
 | |
|  21 ............................
 | |
|  22 .......................B....
 | |
| 
 | |
|    This sensor's closest beacon is at 2,10, and so you know there are no
 | |
|    beacons that close or closer (in any positions marked #).
 | |
| 
 | |
|    None of the detected beacons seem to be producing the distress signal, so
 | |
|    you'll need to work out where the distress beacon is by working out where
 | |
|    it isn't. For now, keep things simple by counting the positions where a
 | |
|    beacon cannot possibly be along just a single row.
 | |
| 
 | |
|    So, suppose you have an arrangement of beacons and sensors like in the
 | |
|    example above and, just in the row where y=10, you'd like to count the
 | |
|    number of positions a beacon cannot possibly exist. The coverage from all
 | |
|    sensors near that row looks like this:
 | |
| 
 | |
|                   1    1    2    2
 | |
|         0    5    0    5    0    5
 | |
|   9 ...#########################...
 | |
|  10 ..####B######################..
 | |
|  11 .###S#############.###########.
 | |
| 
 | |
|    In this example, in the row where y=10, there are 26 positions where a
 | |
|    beacon cannot be present.
 | |
| 
 | |
|    Consult the report from the sensors you just deployed. In the row where
 | |
|    y=2000000, how many positions cannot contain a beacon?
 | |
| 
 | |
|    Your puzzle answer was 4748135.
 | |
| 
 | |
| --- Part Two ---
 | |
| 
 | |
|    Your handheld device indicates that the distress signal is coming from a
 | |
|    beacon nearby. The distress beacon is not detected by any sensor, but the
 | |
|    distress beacon must have x and y coordinates each no lower than 0 and no
 | |
|    larger than 4000000.
 | |
| 
 | |
|    To isolate the distress beacon's signal, you need to determine its tuning
 | |
|    frequency, which can be found by multiplying its x coordinate by 4000000
 | |
|    and then adding its y coordinate.
 | |
| 
 | |
|    In the example above, the search space is smaller: instead, the x and y
 | |
|    coordinates can each be at most 20. With this reduced search area, there
 | |
|    is only a single position that could have a beacon: x=14, y=11. The tuning
 | |
|    frequency for this distress beacon is 56000011.
 | |
| 
 | |
|    Find the only possible position for the distress beacon. What is its
 | |
|    tuning frequency?
 | |
| 
 | |
|    Your puzzle answer was 13743542639657.
 | |
| 
 | |
|    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://en.wikipedia.org/wiki/Taxicab_geometry
 | |
|    . https://adventofcode.com/2022
 | |
|    . https://adventofcode.com/2022/day/15/input
 |