152 lines
5.4 KiB
Plaintext
152 lines
5.4 KiB
Plaintext
Advent of Code
|
|
br0xen (AoC++) 31*
|
|
|
|
--- Day 20: Grove Positioning System ---
|
|
|
|
It's finally time to meet back up with the Elves. When you try to contact them, however, you get no reply. Perhaps
|
|
you're out of range?
|
|
|
|
You know they're headed to the grove where the star fruit grows, so if you can figure out where that is, you should
|
|
be able to meet back up with them.
|
|
|
|
Fortunately, your handheld device has a file (your puzzle input) that contains the grove's coordinates!
|
|
Unfortunately, the file is encrypted - just in case the device were to fall into the wrong hands.
|
|
|
|
Maybe you can decrypt it?
|
|
|
|
When you were still back at the camp, you overheard some Elves talking about coordinate file encryption. The main
|
|
operation involved in decrypting the file is called mixing.
|
|
|
|
The encrypted file is a list of numbers. To mix the file, move each number forward or backward in the file a number
|
|
of positions equal to the value of the number being moved. The list is circular, so moving a number off one end of
|
|
the list wraps back around to the other end as if the ends were connected.
|
|
|
|
For example, to move the 1 in a sequence like 4, 5, 6, 1, 7, 8, 9, the 1 moves one position forward: 4, 5, 6, 7, 1,
|
|
8, 9. To move the -2 in a sequence like 4, -2, 5, 6, 7, 8, 9, the -2 moves two positions backward, wrapping around:
|
|
4, 5, 6, 7, 8, -2, 9.
|
|
|
|
The numbers should be moved in the order they originally appear in the encrypted file. Numbers moving around during
|
|
the mixing process do not change the order in which the numbers are moved.
|
|
|
|
Consider this encrypted file:
|
|
|
|
1
|
|
2
|
|
-3
|
|
3
|
|
-2
|
|
0
|
|
4
|
|
|
|
Mixing this file proceeds as follows:
|
|
|
|
Initial arrangement:
|
|
1, 2, -3, 3, -2, 0, 4
|
|
|
|
1 moves between 2 and -3:
|
|
2, 1, -3, 3, -2, 0, 4
|
|
|
|
2 moves between -3 and 3:
|
|
1, -3, 2, 3, -2, 0, 4
|
|
|
|
-3 moves between -2 and 0:
|
|
1, 2, 3, -2, -3, 0, 4
|
|
|
|
3 moves between 0 and 4:
|
|
1, 2, -2, -3, 0, 3, 4
|
|
|
|
-2 moves between 4 and 1:
|
|
1, 2, -3, 0, 3, 4, -2
|
|
|
|
0 does not move:
|
|
1, 2, -3, 0, 3, 4, -2
|
|
|
|
4 moves between -3 and 0:
|
|
1, 2, -3, 4, 0, 3, -2
|
|
|
|
Then, the grove coordinates can be found by looking at the 1000th, 2000th, and 3000th numbers after the value 0,
|
|
wrapping around the list as necessary. In the above example, the 1000th number after 0 is 4, the 2000th is -3, and
|
|
the 3000th is 2; adding these together produces 3.
|
|
|
|
Mix your encrypted file exactly once. What is the sum of the three numbers that form the grove coordinates?
|
|
|
|
Your puzzle answer was 9687.
|
|
|
|
--- Part Two ---
|
|
|
|
The grove coordinate values seem nonsensical. While you ponder the mysteries of Elf encryption, you suddenly
|
|
remember the rest of the decryption routine you overheard back at camp.
|
|
|
|
First, you need to apply the decryption key, 811589153. Multiply each number by the decryption key before you
|
|
begin; this will produce the actual list of numbers to mix.
|
|
|
|
Second, you need to mix the list of numbers ten times. The order in which the numbers are mixed does not change
|
|
during mixing; the numbers are still moved in the order they appeared in the original, pre-mixed list. (So, if -3
|
|
appears fourth in the original list of numbers to mix, -3 will be the fourth number to move during each round of
|
|
mixing.)
|
|
|
|
Using the same example as above:
|
|
|
|
Initial arrangement:
|
|
811589153, 1623178306, -2434767459, 2434767459, -1623178306, 0, 3246356612
|
|
|
|
After 1 round of mixing:
|
|
0, -2434767459, 3246356612, -1623178306, 2434767459, 1623178306, 811589153
|
|
|
|
After 2 rounds of mixing:
|
|
0, 2434767459, 1623178306, 3246356612, -2434767459, -1623178306, 811589153
|
|
|
|
After 3 rounds of mixing:
|
|
0, 811589153, 2434767459, 3246356612, 1623178306, -1623178306, -2434767459
|
|
|
|
After 4 rounds of mixing:
|
|
0, 1623178306, -2434767459, 811589153, 2434767459, 3246356612, -1623178306
|
|
|
|
After 5 rounds of mixing:
|
|
0, 811589153, -1623178306, 1623178306, -2434767459, 3246356612, 2434767459
|
|
|
|
After 6 rounds of mixing:
|
|
0, 811589153, -1623178306, 3246356612, -2434767459, 1623178306, 2434767459
|
|
|
|
After 7 rounds of mixing:
|
|
0, -2434767459, 2434767459, 1623178306, -1623178306, 811589153, 3246356612
|
|
|
|
After 8 rounds of mixing:
|
|
0, 1623178306, 3246356612, 811589153, -2434767459, 2434767459, -1623178306
|
|
|
|
After 9 rounds of mixing:
|
|
0, 811589153, 1623178306, -2434767459, 3246356612, 2434767459, -1623178306
|
|
|
|
After 10 rounds of mixing:
|
|
0, -2434767459, 1623178306, 3246356612, -1623178306, 2434767459, 811589153
|
|
|
|
The grove coordinates can still be found in the same way. Here, the 1000th number after 0 is 811589153, the 2000th
|
|
is 2434767459, and the 3000th is -1623178306; adding these together produces 1623178306.
|
|
|
|
Apply the decryption key and mix your encrypted file ten times. What is the sum of the three numbers that form the
|
|
grove coordinates?
|
|
|
|
Your puzzle answer was 1338310513297.
|
|
|
|
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://adventofcode.com/2022
|
|
. https://adventofcode.com/2022/day/20/input
|