advent-of-code 2025.5.0

Solutions to Advent of Code
Documentation
........#.........................................................................................................#..................#......
.............#.......................#....................................#......#......................#.......................#...........
...............................#...........#...........................................................................#....................
.........................#...........................#.......................................#...........................................#..
.....#...............................................................................#......................................................
....................................................................................................................................#.......
...........................................................#..............................#................#.......#........................
..........#..........#............#..................................#......#...............................................................
.........................................#..................................................................................................
#..............#.............#.......................#........................................#.......................#.....................
......#..........................................................................#......#...........#.......................................
................................................................................................................#...........................
............#...........#...............................#..............#...................................#................................
....................................#................................................#.....................................#................
...#.............#..............................................#...........................................................................
.......................................................................................................#....................................
.........#.....................#...............................................................#............................................
.........................................................................................................................................#..
#...............................................................................#.....................................#.....................
......#...........#.................#..........#.........................................#..................................................
...........#............#..............................#..............#..........................................#..........................
...................................................................................#..............#...........................#.............
..................................................#.........................................................................................
.............................................#............................................................................#.............#...
.........................................................................................................#..................................
.....#........................#...........................#.....#..............#............#...............................................
................#................................................................................................................#..........
................................................#.............................................................#.............................
..........................#..........#.......................#.....................#.....#...........#......................................
............#......#........................#.....................#.....#.....................#........................#...................#
............................................................................................................................................
................................#.......................#...................................................................#...............
.....#...................................#...................................................................#........................#.....
....................................#.......................#...............................................................................
.............................................#................................#................#................................#...........
#.....................#.................................................#............................#......................................
.....................................................#............................................................#.......#.........#.......
..................#............................................#...........................................................................#
...............................#.......#..................................................................#.................................
............#..............................................................#.................................................#..............
...................................#........................................................#...............................................
#....................#......................................................................................................................
......#....................................................#.......................................#........................................
...................................................................#...........#...............................................#.....#......
.............................#..................#................................................................#..........................
...................#...............................................................#......................................#.................
............................................................................................................................................
............................................#....................#.................................................................#........
........#......#...............#.......#...........#.........................................#..............................................
........................................................................................#.........#........#................................
............................................................................................................................................
..#..............................................................................#..........................................................
..................................#.......................#.............................................#........#.....................#....
.............#...............#..............#.....................................................................................#.........
............................................................................................................................................
.....................................#.............................#....................#...................................................
..........#.................................................................................................................................
.....#...........................#.......#...............................#..........#........#...............#.....#......#.................
................................................#..................................................#........................................
#.......................................................................................................................................#...
............................................................................................................................................
.....................#................................#........................................#...........#................................
...........#..............#..........................................#......................................................................
....................................#...........................#...............#....................#................#............#......#.
......#..............................................................................#......................................#...............
..............#.................#..............#..........................................#.................................................
...........................................................#.............#..................................................................
.#......................................................................................................................................#...
...............................................................................#.........................#.....#..................#.........
.................................................................#...............................#...................#......................
.......#.........#.....#..................#..........#...............................#......................................................
...........................................................................................................................#................
.............................#........#......................#..............................................#............................#..
........................................................#..........................................#...............#........................
...............................................................................#...................................................#........
............#...................#.......................................................................#...................................
......#....................#................#.........................#.................#.....#.............................................
...................................................#........................................................................................
.....................#...............#.....................................#.............................................#.................#
.........#.........................................................#.................................#......................................
............................................................................................................................................
............................................................................................................................................
.....#...........................................#..........#.....................................#.......#.................................
........................#......#............................................................................................................
..............................................................................#..............#........#.....................................
#.................#.........................#......................................................................#........................
.............#.........................#..................#........................#......................................#.................
........................................................................#...................................................................
....#...................................................................................................#.................................#.
.....................#.............................................#............#.......#.......................................#...........
...............................................#............#..................................#............................................
..............#................#...........................................#............................................#...................
.#.....#....................................................................................................................................
...........................#........#..................#.........#..................................................................#.......
...............................................................................................................................#............
....................#......................#.......................................#...........................#............................
..........#........................................#..........#...............#...................#.........................................
..................................#......................................................................#.................#................
.......................#......................................................................#......................#......................
..................#............................#.................#......#...................................................................
.................................................................................#.............................................#............
............#.................#......#..............................................................................................#.....#.
#.....................................................#....................#.........#..........................#...........................
.....#.....................................#................#...............................................................................
..................................#.........................................................................................#..........#....
................#.......................................................................#......#............................................
........................................#...................................................................................................
.........#.............#.......................#.......................................................#............................#.......
..............................................................................#.............................................................
#.............................#....................................................#........................................................
......................................#.....................#.....................................................#..............#..........
..................................................................#.......................#................#...............................#
...................#..............#...................#..............................................#..................#...................
................................................................................................#...........................................
.......#.....#..............................................................................................................................
..................................................#.................................................................................#.......
......................#..................#........................................#....................#......#...........................#.
.......................................................#.................#................#................................#................
...........................#.......................................#................................................#.......................
.................................................................................................................................#..........
......#..........................................#.............................#......................................................#.....
...................#....................#............................................#..........#...........................................
...........#.........................................#...........#..........................................#...............................
..#..............................#.........................................#...........................................#....................
......................................................................#.................#...................................................
.......................#...................................................................................................#................
...........................................................#......................#..................#........#.............................
.....#................................#.....#.......................................................................#..............#........
#...............................#........................................#.......................#..........................................
........................................................................................................................#...................
.........................................#..................................................................................................
............#.....................................#..................#......#................#........................................#.....
........................................................#......#.......................................#....................................
........#.........#..................#..................................................#.......................#...........................
................................................................................#........................................#.........#........
............................................................................................................#.................#.............
........................................#......#............................................................................................
....................#..............................................................#............#......................................#....
.........#.....................#.........................................#.............................#.......#............................
...#......................#............................#........#......................#...............................#..........#.........