172 lines
6.5 KiB
Plaintext
172 lines
6.5 KiB
Plaintext
Advent of Code
|
|
|
|
br0xen [7](AoC++) 2*
|
|
|
|
/^[8]2025$/
|
|
|
|
--- Day 1: Secret Entrance ---
|
|
|
|
The Elves have good news and bad news.
|
|
|
|
The good news is that they've discovered [16]project management! This has
|
|
given them the tools they need to prevent their usual Christmas emergency.
|
|
For example, they now know that the North Pole decorations need to be
|
|
finished soon so that other critical tasks can start on time.
|
|
|
|
The bad news is that they've realized they have a different emergency:
|
|
according to their resource planning, none of them have any time left to
|
|
decorate the North Pole!
|
|
|
|
To save Christmas, the Elves need you to finish decorating the North Pole
|
|
by December 12th.
|
|
|
|
Collect stars by solving puzzles. Two puzzles will be made available on
|
|
each day; the second puzzle is unlocked when you complete the first. Each
|
|
puzzle grants one star. Good luck!
|
|
|
|
You arrive at the secret entrance to the North Pole base ready to start
|
|
decorating. Unfortunately, the password seems to have been changed, so you
|
|
can't get in. A document taped to the wall helpfully explains:
|
|
|
|
"Due to new security protocols, the password is locked in the safe below.
|
|
Please see the attached document for the new combination."
|
|
|
|
The safe has a dial with only an arrow on it; around the dial are the
|
|
numbers 0 through 99 in order. As you turn the dial, it makes a small
|
|
click noise as it reaches each number.
|
|
|
|
The attached document (your puzzle input) contains a sequence of
|
|
rotations, one per line, which tell you how to open the safe. A rotation
|
|
starts with an L or R which indicates whether the rotation should be to
|
|
the left (toward lower numbers) or to the right (toward higher numbers).
|
|
Then, the rotation has a distance value which indicates how many clicks
|
|
the dial should be rotated in that direction.
|
|
|
|
So, if the dial were pointing at 11, a rotation of R8 would cause the dial
|
|
to point at 19. After that, a rotation of L19 would cause it to point at
|
|
0.
|
|
|
|
Because the dial is a circle, turning the dial left from 0 one click makes
|
|
it point at 99. Similarly, turning the dial right from 99 one click makes
|
|
it point at 0.
|
|
|
|
So, if the dial were pointing at 5, a rotation of L10 would cause it to
|
|
point at 95. After that, a rotation of R5 could cause it to point at 0.
|
|
|
|
The dial starts by pointing at 50.
|
|
|
|
You could follow the instructions, but your recent required official North
|
|
Pole secret entrance security training seminar taught you that the safe is
|
|
actually a decoy. The actual password is the number of times the dial is
|
|
left pointing at 0 after any rotation in the sequence.
|
|
|
|
For example, suppose the attached document contained the following
|
|
rotations:
|
|
|
|
L68
|
|
L30
|
|
R48
|
|
L5
|
|
R60
|
|
L55
|
|
L1
|
|
L99
|
|
R14
|
|
L82
|
|
|
|
Following these rotations would cause the dial to move as follows:
|
|
|
|
• The dial starts by pointing at 50.
|
|
• The dial is rotated L68 to point at 82.
|
|
• The dial is rotated L30 to point at 52.
|
|
• The dial is rotated R48 to point at 0.
|
|
• The dial is rotated L5 to point at 95.
|
|
• The dial is rotated R60 to point at 55.
|
|
• The dial is rotated L55 to point at 0.
|
|
• The dial is rotated L1 to point at 99.
|
|
• The dial is rotated L99 to point at 0.
|
|
• The dial is rotated R14 to point at 14.
|
|
• The dial is rotated L82 to point at 32.
|
|
|
|
Because the dial points at 0 a total of three times during this process,
|
|
the password in this example is 3.
|
|
|
|
Analyze the rotations in your attached document. What's the actual
|
|
password to open the door?
|
|
|
|
Your puzzle answer was 1026.
|
|
|
|
--- Part Two ---
|
|
|
|
You're sure that's the right password, but the door won't open. You knock,
|
|
but nobody answers. You build a snowman while you think.
|
|
|
|
As you're rolling the snowballs for your snowman, you find another
|
|
security document that must have fallen into the snow:
|
|
|
|
"Due to newer security protocols, please use password method 0x434C49434B
|
|
until further notice."
|
|
|
|
You remember from the training seminar that "method 0x434C49434B" means
|
|
you're actually supposed to count the number of times any click causes the
|
|
dial to point at 0, regardless of whether it happens during a rotation or
|
|
at the end of one.
|
|
|
|
Following the same rotations as in the above example, the dial points at
|
|
zero a few extra times during its rotations:
|
|
|
|
• The dial starts by pointing at 50.
|
|
• The dial is rotated L68 to point at 82; during this rotation, it
|
|
points at 0 once.
|
|
• The dial is rotated L30 to point at 52.
|
|
• The dial is rotated R48 to point at 0.
|
|
• The dial is rotated L5 to point at 95.
|
|
• The dial is rotated R60 to point at 55; during this rotation, it
|
|
points at 0 once.
|
|
• The dial is rotated L55 to point at 0.
|
|
• The dial is rotated L1 to point at 99.
|
|
• The dial is rotated L99 to point at 0.
|
|
• The dial is rotated R14 to point at 14.
|
|
• The dial is rotated L82 to point at 32; during this rotation, it
|
|
points at 0 once.
|
|
|
|
In this example, the dial points at 0 three times at the end of a
|
|
rotation, plus three more times during a rotation. So, in this example,
|
|
the new password would be 6.
|
|
|
|
Be careful: if the dial were pointing at 50, a single rotation like R1000
|
|
would cause the dial to point at 0 ten times before returning back to 50!
|
|
|
|
Using password method 0x434C49434B, what is the password to open the door?
|
|
|
|
Your puzzle answer was 5923.
|
|
|
|
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/2025/about
|
|
3. https://adventofcode.com/2025/events
|
|
5. https://adventofcode.com/2025/settings
|
|
6. https://adventofcode.com/2025/auth/logout
|
|
7. Advent of Code Supporter
|
|
https://adventofcode.com/2025/support
|
|
8. https://adventofcode.com/2025
|
|
9. https://adventofcode.com/2025
|
|
10. https://adventofcode.com/2025/support
|
|
11. https://adventofcode.com/2025/sponsors
|
|
12. https://adventofcode.com/2025/leaderboard/private
|
|
13. https://adventofcode.com/2025/stats
|
|
14. https://adventofcode.com/2025/sponsors
|
|
15. https://adventofcode.com/2025/sponsors/redirect?url=https%3A%2F%2Fwww%2Ejumptrading%2Ecom%2F
|
|
16. https://en.wikipedia.org/wiki/Project_management
|
|
17. https://adventofcode.com/2025
|
|
18. https://adventofcode.com/2025/day/1/input
|