387 lines
7.0 KiB
Plaintext
387 lines
7.0 KiB
Plaintext
# Advent of Code
|
||
|
||
--- Day 11: Dumbo Octopus ---
|
||
|
||
You enter a large cavern full of rare bioluminescent dumbo octopuses! They seem to not like the Christmas lights on your submarine, so you turn
|
||
them off for now.
|
||
|
||
There are 100 octopuses arranged neatly in a 10 by 10 grid. Each octopus slowly gains energy over time and flashes brightly for a moment when its
|
||
energy is full. Although your lights are off, maybe you could navigate through the cave without disturbing the octopuses if you could predict
|
||
when the flashes of light will happen.
|
||
|
||
Each octopus has an energy level - your submarine can remotely measure the energy level of each octopus (your puzzle input). For example:
|
||
|
||
5483143223
|
||
2745854711
|
||
5264556173
|
||
6141336146
|
||
6357385478
|
||
4167524645
|
||
2176841721
|
||
6882881134
|
||
4846848554
|
||
5283751526
|
||
|
||
The energy level of each octopus is a value between 0 and 9. Here, the top-left octopus has an energy level of 5, the bottom-right one has an
|
||
energy level of 6, and so on.
|
||
|
||
You can model the energy levels and flashes of light in steps. During a single step, the following occurs:
|
||
|
||
• First, the energy level of each octopus increases by 1.
|
||
• Then, any octopus with an energy level greater than 9 flashes. This increases the energy level of all adjacent octopuses by 1, including
|
||
octopuses that are diagonally adjacent. If this causes an octopus to have an energy level greater than 9, it also flashes. This process
|
||
continues as long as new octopuses keep having their energy level increased beyond 9. (An octopus can only flash at most once per step.)
|
||
• Finally, any octopus that flashed during this step has its energy level set to 0, as it used all of its energy to flash.
|
||
|
||
Adjacent flashes can cause an octopus to flash on a step even if it begins that step with very little energy. Consider the middle octopus with 1
|
||
energy in this situation:
|
||
|
||
Before any steps:
|
||
11111
|
||
19991
|
||
19191
|
||
19991
|
||
11111
|
||
|
||
After step 1:
|
||
34543
|
||
40004
|
||
50005
|
||
40004
|
||
34543
|
||
|
||
After step 2:
|
||
45654
|
||
51115
|
||
61116
|
||
51115
|
||
45654
|
||
|
||
An octopus is highlighted when it flashed during the given step.
|
||
|
||
Here is how the larger example above progresses:
|
||
|
||
Before any steps:
|
||
5483143223
|
||
2745854711
|
||
5264556173
|
||
6141336146
|
||
6357385478
|
||
4167524645
|
||
2176841721
|
||
6882881134
|
||
4846848554
|
||
5283751526
|
||
|
||
After step 1:
|
||
6594254334
|
||
3856965822
|
||
6375667284
|
||
7252447257
|
||
7468496589
|
||
5278635756
|
||
3287952832
|
||
7993992245
|
||
5957959665
|
||
6394862637
|
||
|
||
After step 2:
|
||
8807476555
|
||
5089087054
|
||
8597889608
|
||
8485769600
|
||
8700908800
|
||
6600088989
|
||
6800005943
|
||
0000007456
|
||
9000000876
|
||
8700006848
|
||
|
||
After step 3:
|
||
0050900866
|
||
8500800575
|
||
9900000039
|
||
9700000041
|
||
9935080063
|
||
7712300000
|
||
7911250009
|
||
2211130000
|
||
0421125000
|
||
0021119000
|
||
|
||
After step 4:
|
||
2263031977
|
||
0923031697
|
||
0032221150
|
||
0041111163
|
||
0076191174
|
||
0053411122
|
||
0042361120
|
||
5532241122
|
||
1532247211
|
||
1132230211
|
||
|
||
After step 5:
|
||
4484144000
|
||
2044144000
|
||
2253333493
|
||
1152333274
|
||
1187303285
|
||
1164633233
|
||
1153472231
|
||
6643352233
|
||
2643358322
|
||
2243341322
|
||
|
||
After step 6:
|
||
5595255111
|
||
3155255222
|
||
3364444605
|
||
2263444496
|
||
2298414396
|
||
2275744344
|
||
2264583342
|
||
7754463344
|
||
3754469433
|
||
3354452433
|
||
|
||
After step 7:
|
||
6707366222
|
||
4377366333
|
||
4475555827
|
||
3496655709
|
||
3500625609
|
||
3509955566
|
||
3486694453
|
||
8865585555
|
||
4865580644
|
||
4465574644
|
||
|
||
After step 8:
|
||
7818477333
|
||
5488477444
|
||
5697666949
|
||
4608766830
|
||
4734946730
|
||
4740097688
|
||
6900007564
|
||
0000009666
|
||
8000004755
|
||
6800007755
|
||
|
||
After step 9:
|
||
9060000644
|
||
7800000976
|
||
6900000080
|
||
5840000082
|
||
5858000093
|
||
6962400000
|
||
8021250009
|
||
2221130009
|
||
9111128097
|
||
7911119976
|
||
|
||
After step 10:
|
||
0481112976
|
||
0031112009
|
||
0041112504
|
||
0081111406
|
||
0099111306
|
||
0093511233
|
||
0442361130
|
||
5532252350
|
||
0532250600
|
||
0032240000
|
||
|
||
After step 10, there have been a total of 204 flashes. Fast forwarding, here is the same configuration every 10 steps:
|
||
|
||
After step 20:
|
||
3936556452
|
||
5686556806
|
||
4496555690
|
||
4448655580
|
||
4456865570
|
||
5680086577
|
||
7000009896
|
||
0000000344
|
||
6000000364
|
||
4600009543
|
||
|
||
After step 30:
|
||
0643334118
|
||
4253334611
|
||
3374333458
|
||
2225333337
|
||
2229333338
|
||
2276733333
|
||
2754574565
|
||
5544458511
|
||
9444447111
|
||
7944446119
|
||
|
||
After step 40:
|
||
6211111981
|
||
0421111119
|
||
0042111115
|
||
0003111115
|
||
0003111116
|
||
0065611111
|
||
0532351111
|
||
3322234597
|
||
2222222976
|
||
2222222762
|
||
|
||
After step 50:
|
||
9655556447
|
||
4865556805
|
||
4486555690
|
||
4458655580
|
||
4574865570
|
||
5700086566
|
||
6000009887
|
||
8000000533
|
||
6800000633
|
||
5680000538
|
||
|
||
After step 60:
|
||
2533334200
|
||
2743334640
|
||
2264333458
|
||
2225333337
|
||
2225333338
|
||
2287833333
|
||
3854573455
|
||
1854458611
|
||
1175447111
|
||
1115446111
|
||
|
||
After step 70:
|
||
8211111164
|
||
0421111166
|
||
0042111114
|
||
0004211115
|
||
0000211116
|
||
0065611111
|
||
0532351111
|
||
7322235117
|
||
5722223475
|
||
4572222754
|
||
|
||
After step 80:
|
||
1755555697
|
||
5965555609
|
||
4486555680
|
||
4458655580
|
||
4570865570
|
||
5700086566
|
||
7000008666
|
||
0000000990
|
||
0000000800
|
||
0000000000
|
||
|
||
After step 90:
|
||
7433333522
|
||
2643333522
|
||
2264333458
|
||
2226433337
|
||
2222433338
|
||
2287833333
|
||
2854573333
|
||
4854458333
|
||
3387779333
|
||
3333333333
|
||
|
||
After step 100:
|
||
0397666866
|
||
0749766918
|
||
0053976933
|
||
0004297822
|
||
0004229892
|
||
0053222877
|
||
0532222966
|
||
9322228966
|
||
7922286866
|
||
6789998766
|
||
|
||
After 100 steps, there have been a total of 1656 flashes.
|
||
|
||
Given the starting energy levels of the dumbo octopuses in your cavern, simulate 100 steps. How many total flashes are there after 100 steps?
|
||
|
||
Your puzzle answer was 1659.
|
||
|
||
--- Part Two ---
|
||
|
||
It seems like the individual flashes aren't bright enough to navigate. However, you might have a better option: the flashes seem to be
|
||
synchronizing!
|
||
|
||
In the example above, the first time all octopuses flash simultaneously is step 195:
|
||
|
||
After step 193:
|
||
5877777777
|
||
8877777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
7777777777
|
||
|
||
After step 194:
|
||
6988888888
|
||
9988888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
8888888888
|
||
|
||
After step 195:
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
0000000000
|
||
|
||
If you can calculate the exact moments when the octopuses will all flash simultaneously, you should be able to navigate through the cavern. What
|
||
is the first step during which all octopuses flash?
|
||
|
||
Your puzzle answer was 227.
|
||
|
||
Both parts of this puzzle are complete! They provide two gold stars: **
|
||
|
||
At this point, you should return to your Advent calendar and try another puzzle.
|
||
|
||
If you still want to see it, you can get your puzzle input.
|
||
|
||
References
|
||
|
||
Visible links
|
||
. https://adventofcode.com/
|
||
. https://adventofcode.com/2021/about
|
||
. https://adventofcode.com/2021/events
|
||
. https://adventofcode.com/2021/settings
|
||
. https://adventofcode.com/2021/auth/logout
|
||
. Advent of Code Supporter
|
||
https://adventofcode.com/2021/support
|
||
. https://adventofcode.com/2021
|
||
. https://adventofcode.com/2021
|
||
. https://adventofcode.com/2021/support
|
||
. https://adventofcode.com/2021/sponsors
|
||
. https://adventofcode.com/2021/leaderboard
|
||
. https://adventofcode.com/2021/stats
|
||
. https://adventofcode.com/2021/sponsors
|
||
. https://www.youtube.com/watch?v=eih-VSaS2g0
|
||
. https://adventofcode.com/2021
|
||
. https://adventofcode.com/2021/day/11/input
|
||
. javascript:void(0);
|