Advent of Code

     • [About]
     • [Events]
     • [Shop]
     • [Settings]
     • [Log Out]

   br0xen (AoC++) 41*

                          int y=2022;

     • [Calendar]
     • [AoC++]
     • [Sponsors]
     • [Leaderboard]
     • [Stats]

   Our sponsors help make Advent of Code possible:
   Smarty - Join our private leaderboard and solve our
   puzzles for BIG PRIZES!!! ----------------- Address
   Validation and Autocomplete, and more!

--- Day 24: Blizzard Basin ---

   With everything replanted for next year (and with
   elephants and monkeys to tend the grove), you and the
   Elves leave for the extraction point.

   Partway up the mountain that shields the grove is a
   flat, open area that serves as the extraction point.
   It's a bit of a climb, but nothing the expedition can't
   handle.

   At least, that would normally be true; now that the
   mountain is covered in snow, things have become more
   difficult than the Elves are used to.

   As the expedition reaches a valley that must be
   traversed to reach the extraction site, you find that
   strong, turbulent winds are pushing small blizzards of
   snow and sharp ice around the valley. It's a good thing
   everyone packed warm clothes! To make it across safely,
   you'll need to find a way to avoid them.

   Fortunately, it's easy to see all of this from the
   entrance to the valley, so you make a map of the valley
   and the blizzards (your puzzle input). For example:

 #.#####
 #.....#
 #>....#
 #.....#
 #...v.#
 #.....#
 #####.#

   The walls of the valley are drawn as #; everything else
   is ground. Clear ground - where there is currently no
   blizzard - is drawn as .. Otherwise, blizzards are
   drawn with an arrow indicating their direction of
   motion: up (^), down (v), left (<), or right (>).

   The above map includes two blizzards, one moving right
   (>) and one moving down (v). In one minute, each
   blizzard moves one position in the direction it is
   pointing:

 #.#####
 #.....#
 #.>...#
 #.....#
 #.....#
 #...v.#
 #####.#

   Due to conservation of blizzard energy, as a blizzard
   reaches the wall of the valley, a new blizzard forms on
   the opposite side of the valley moving in the same
   direction. After another minute, the bottom
   downward-moving blizzard has been replaced with a new
   downward-moving blizzard at the top of the valley
   instead:

 #.#####
 #...v.#
 #..>..#
 #.....#
 #.....#
 #.....#
 #####.#

   Because blizzards are made of tiny snowflakes, they
   pass right through each other. After another minute,
   both blizzards temporarily occupy the same position,
   marked 2:

 #.#####
 #.....#
 #...2.#
 #.....#
 #.....#
 #.....#
 #####.#

   After another minute, the situation resolves itself,
   giving each blizzard back its personal space:

 #.#####
 #.....#
 #....>#
 #...v.#
 #.....#
 #.....#
 #####.#

   Finally, after yet another minute, the rightward-facing
   blizzard on the right is replaced with a new one on the
   left facing the same direction:

 #.#####
 #.....#
 #>....#
 #.....#
 #...v.#
 #.....#
 #####.#

   This process repeats at least as long as you are
   observing it, but probably forever.

   Here is a more complex example:

 #.######
 #>>.<^<#
 #.<..<<#
 #>v.><>#
 #<^v^^>#
 ######.#

   Your expedition begins in the only non-wall position in
   the top row and needs to reach the only non-wall
   position in the bottom row. On each minute, you can
   move up, down, left, or right, or you can wait in
   place. You and the blizzards act simultaneously, and
   you cannot share a position with a blizzard.

   In the above example, the fastest way to reach your
   goal requires 18 steps. Drawing the position of the
   expedition as E, one way to achieve this is:

 Initial state:
 #E######
 #>>.<^<#
 #.<..<<#
 #>v.><>#
 #<^v^^>#
 ######.#

 Minute 1, move down:
 #.######
 #E>3.<.#
 #<..<<.#
 #>2.22.#
 #>v..^<#
 ######.#

 Minute 2, move down:
 #.######
 #.2>2..#
 #E^22^<#
 #.>2.^>#
 #.>..<.#
 ######.#

 Minute 3, wait:
 #.######
 #<^<22.#
 #E2<.2.#
 #><2>..#
 #..><..#
 ######.#

 Minute 4, move up:
 #.######
 #E<..22#
 #<<.<..#
 #<2.>>.#
 #.^22^.#
 ######.#

 Minute 5, move right:
 #.######
 #2Ev.<>#
 #<.<..<#
 #.^>^22#
 #.2..2.#
 ######.#

 Minute 6, move right:
 #.######
 #>2E<.<#
 #.2v^2<#
 #>..>2>#
 #<....>#
 ######.#

 Minute 7, move down:
 #.######
 #.22^2.#
 #<vE<2.#
 #>>v<>.#
 #>....<#
 ######.#

 Minute 8, move left:
 #.######
 #.<>2^.#
 #.E<<.<#
 #.22..>#
 #.2v^2.#
 ######.#

 Minute 9, move up:
 #.######
 #<E2>>.#
 #.<<.<.#
 #>2>2^.#
 #.v><^.#
 ######.#

 Minute 10, move right:
 #.######
 #.2E.>2#
 #<2v2^.#
 #<>.>2.#
 #..<>..#
 ######.#

 Minute 11, wait:
 #.######
 #2^E^2>#
 #<v<.^<#
 #..2.>2#
 #.<..>.#
 ######.#

 Minute 12, move down:
 #.######
 #>>.<^<#
 #.<E.<<#
 #>v.><>#
 #<^v^^>#
 ######.#

 Minute 13, move down:
 #.######
 #.>3.<.#
 #<..<<.#
 #>2E22.#
 #>v..^<#
 ######.#

 Minute 14, move right:
 #.######
 #.2>2..#
 #.^22^<#
 #.>2E^>#
 #.>..<.#
 ######.#

 Minute 15, move right:
 #.######
 #<^<22.#
 #.2<.2.#
 #><2>E.#
 #..><..#
 ######.#

 Minute 16, move right:
 #.######
 #.<..22#
 #<<.<..#
 #<2.>>E#
 #.^22^.#
 ######.#

 Minute 17, move down:
 #.######
 #2.v.<>#
 #<.<..<#
 #.^>^22#
 #.2..2E#
 ######.#

 Minute 18, move down:
 #.######
 #>2.<.<#
 #.2v^2<#
 #>..>2>#
 #<....>#
 ######E#

   What is the fewest number of minutes required to avoid
   the blizzards and reach the goal?

   Your puzzle answer was 240.

--- Part Two ---

   As the expedition reaches the far side of the valley,
   one of the Elves looks especially dismayed:

   He forgot his snacks at the entrance to the valley!

   Since you're so good at dodging blizzards, the Elves
   humbly request that you go back for his snacks. From
   the same initial conditions, how quickly can you make
   it from the start to the goal, then back to the start,
   then back to the goal?

   In the above example, the first trip to the goal takes
   18 minutes, the trip back to the start takes 23
   minutes, and the trip back to the goal again takes 13
   minutes, for a total time of 54 minutes.

   What is the fewest number of minutes required to reach
   the goal, go back to the start, then reach the goal
   again?

   Your puzzle answer was 717.

   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.

   You can also [Shareon Twitter Mastodon] this puzzle.

References

   Visible links
   . https://adventofcode.com/
   . https://adventofcode.com/2022/about
   . https://adventofcode.com/2022/events
   . https://teespring.com/stores/advent-of-code
   . 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://www.smarty.com/advent-of-code
   . https://adventofcode.com/2022
   . https://adventofcode.com/2022/day/24/input
   . https://twitter.com/intent/tweet?text=I%27ve+completed+%22Blizzard+Basin%22+%2D+Day+24+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F24&related=ericwastl&hashtags=AdventOfCode
   . javascript:void(0);