2021 Day 25 Complete

This commit is contained in:
Brian Buller 2021-12-28 07:49:25 -06:00
parent fa7d2a9c0a
commit 9bc3b7300b
3 changed files with 220 additions and 0 deletions

137
2021/day25/input Normal file
View File

@ -0,0 +1,137 @@
.>vv....vv>.v.vv....v>vv>.v>..vv.>.v...v...>v>v.>.>.>..>..>.>v...>>v.v>...vv.v.>.>.vv.vv.v...v.>vvv>>.>...v>..>.>..>v.>.>.v.>...>.>.v..v.>v
>........v>...>>..vv>v>v.v.....v.>>...>>v>>.vv....>.>...v>v>vvv....>.....>.v....vvv.>...v>.>>.>>..>...v..>.>....>>.v>.>.v..>...>.>>..v..vv.
>.>...v..>..v.vv.v>.>.>>v.vvvvv.vv..vv.....v.vv..>.vv>v..>.>.......>...>>>.vvvv>>....v>v.>...>>vv....vv.>........>>..>>..v..>...>..vv>.....
....v.>v>v>v>>..>v.>>..v....>>>...>>.v.>>v>..vv.>....v>.vv.v.v.>.>.v>.v>.vv.vv>>v.vv.v.>..>v...>>v....v>.....v>.....v>..>.>.>.>>>.>.>>>..>>
.>>...>.vv.v....>.vv.v>>..>.>.>>..>.>v.>vv...v.>.>...v>>.>...>.>>>.>........>.vv.v.>vv>v...>v.>.v....v..v.......vvv.>.>v...vv>.v>>>.v.>v...
.v.....>>....v.>v.>>....>v>>...v>>..v..v.v...v..>>..v>....v...>.>>>.v>>>.v.vv.v..>>.vvv..>>v>>..v>v....>v.v>.v>.v.>....>..>>.v.v..>.>>v....
.>..v.vv..vv>vv..>.>v>>..>.>v>..>>...>.>..v.vv>v.v>....>.vv.vv>>>.>..v.>v.v..>v.vv..>vvv.....vv>v>.vvv.>>>..>>.>>>...>vv>v>..v.>....>...vv>
..>.>>.....>...>..v>...>v>...>v.v.>>..>>>.vv>>>...>>>.>vv....>...>..>..v>.>v....vv>.v.vvv...>>.vv>...>>.>.v.v>>>>>.v>>.v.>..v.v.>>..v.v..>v
....v...>>v.v.vv..>vv.v.>....>>...>>>v..>.>vv..vv>>v>.>>>v>...v..v>..>..v.v.vvv....v....>.>.>.vv...v.vvv.>...>.v>.>>...v>>>>vv...v....v...>
v.v.>v..v>>....v.vvv....v...>>.v.>>.>..vv.>.v.>>.v>>v>v>>>..vv>..>..>>>v>.>>v..>..>>.v....v>>.v>...>>.>.>.vv..v>..v.>..>>.>vvv.v...>..v.>.>
>v>>vv.>.>>v>...>>.>..>..vv..>.v.....v>.>...vv.>>...>.>.>>...v..>v......v.>>v>.>..v...v>v.>v....>v>v.>>.v>>>.>..>....vv...v.v.>vv>.v>.vv.>v
v.vv...>v....>.>.v>..>v...vv.....v>>.....v>..>>>.v>.>>vvv.v..>...>v>v>v.>>.....v...vvv>>.v..>>.v>v...v>...v.v..v..>>.>..v.v>...>....v......
>..v>>......>v.v.v.v>v..v..v.>>vv....>v..vv>v...>.v...>v.>>.>v.>..>.v.v.vv>>.>.vv.>>.vv.>v..>>...v>.vv>..v.>vvv..>....>...v..v..v.v>..>>..>
v..>.v....>>...vvv.vv.>.vv>>v.>>v..v...>.>..v.v..v..>..>>...v>...v>.....>>.vvv>....>>.>>.>v>v.......>..>...vv.............v>vv>...v.v.>>..>
.v..>>v.>..>vv.v...v>>>>..>.v..v...v.>>>>v.>>>.>..v>....v....>..v..>.v>..>v.v....>.v..v.v..v...>v>v.>vv.....v.....>...>>.>.v.>vv>>>..v.>>.v
vv...v...vv>.>v...v...v>.v.v.>>..v.>....>...............>vvv.v>v..>>....>.>>...vvv...v.vv..v.v.v...vv.>.v.v>v>>>v......>v..v>>...v>.v>vv>..
.>..v.vv.....>>vv.vv>v..>v>>>.vv>.v.>>>>.v>>.v.v>v..>v..>.>vv>..vv>v>.>vv>v>......>vv.....v.v.>v>.>...v..v.vv...>v..vv.v..>vvv.>.>v>.>v..>.
>.v>v....>...v>>v.vv.v.>..>>>.v.vv.vv.v.>..>>v.>.>......vv.v.>.vv.>v>>..v....vvv>.v.>v...v....vv>.>>>>v.>>>>..v.>v.>v.v.>vv>..vv.v.>.>>.>>v
v.>v>vvv.vv.v..v>v>>.vv..vv.....>.>.>>..v.......>.....>.>.v..>>..>..v>>>.>.>....>>....v.>..>...vv>v..v>v>>vv...>...>>...>...>.v.v.....v>>..
....v>>v.v>>..v>>.>vv.v>>.>vvvv.....v>..>.>..v..>.>..v.>...>>>v..>.>>.>v>>>vvv.........v.vv....v>.>v..>..v.>.v.v>...vv.>...>.v..v>>....>v>>
....>.>..v>v.v>.v..>v.>.>.vv>>v.v>vv..v...>..>>.v>.v>v...v..vv>..v.v..>...v>>>.v..vv>>.>.vvv>>>>.>.>vv.v.>.>.v>v>>.v..v>>>...>vv>>.>..>>.>.
....v......>vvv>v>>>....v>vv>.>.vv>vv.>.vvv>.v..v.....v>>.v..v.v..>...vv>.>.>....>.>.>vv..v...>..v.>.>..v>..>..>.>v...>>.>v..v>v.>>>v>..vv.
>v>.>....>>>.v.v....v.....v...>..>vv.v.>.v>v.>v>v...>>>v.>vvv>.....v>..v.>.>v...vv..v.vv>v..vvv>v...v...>.>..>.v..>>.>>....v....>.v.v.v>>v>
...>..v>>.>>>.v>.>v..>.v>>>v...vv.>v>>v.v>.v.....v.vv...v>vv.vv.>>.>>v...v>.>.>..>.v..>.>v.>>v.>>>v.>.....v.....v..v.v.v>.>v.v...>vv>>>vv>.
.>v.v>.v>.v>.v>>.vv>>.>v>v.....v...v..v..v...>>v.v.>v.>...>..>..v>>.>.>>....vv>...v...v>v..v>v..>>.vv..>v>v>.v...v>>...>>>v.v.vvvvvv>>v.vvv
>vv>.v.>.v..v>vv.vv>>>>.....v.v>..v...v>v>v.>.>>>.>.v>>..>...>..vv>.>..v....v.v>.>..>.v.v......v....>v.>.vv>.vv......v>>...v>....vvv..vvv>v
.v.v...>>v>.>v...vv..v..>>.v..v>v....v..vv..vv..>v...>.>..vv>v.>>v>v..>v.vvv..v>.v>>.v......>..v>>.>>..>v>.v>v..>....v....v.v.>>v>...v.>v..
vv....v>v..>v>.>v>v>..vvvv..>>v..>v.....>.vv....v.>.>.v.v.v...>....>>v...v...v...v.v.v...v..v...vv.v..vv..v.v>>.>vvvv>.v..v.v>.v.>>...vv>v.
.v..vv>...>...>>..v.>.>>>.v>vv>>>vv>>.vvv...>>v..>vvv..v>...v>v.>.vvvv.>v.>...v..v.v.v.....>>.>.v..>v..vv>v.>..>..v>>>v>.v>>...>>>...v..vv>
vv>vv.v>.>..vv.>...v..v...v>>>.vvv..v.>..>>.v>v>..v>.vvv>vv>..>v>>....>....>v>vv>>v>v>v..v...vvv.v.v>.>.v>v.>v.v.>v.vv.>v..>v.v..>>>.v.v>v.
..>.v.v..>..>.>.v.v>..v>..v>.>.>>vv...>vv..v.>v..v.v..v....>.>.>>.........v>vvv.v.v...v........v....>v.>>>.......v>..>>>v>>>.>.v......>..>>
v.>...v.>>.vv.........v.v.>.v..>v..>v>v.vv>....v>vv>.v>v..>v>..vv...>>v.v....v....>.v.....v..v.....>vvvvv.>...v>>>v...v>.v>..>>>>...vvvv>..
vv.>....v>v>>v>..v.>>v>..>..>...>>>v.v>>vv.v..>..vvv.>.....>vv.>>.>>v.v..v>vvv..>...v>>......>..v..v.v>>......>v>.v....>..>v...>......>v>>.
.v.v.>.>>......>vv>>>.v........v>v..>>....>.v..>...v>>vv..v..>.>v...>...v.vv>>.>vv>>v>vvv.>..v.>.>>v..>..v>..>.vvv.v..>.>>>>..v...>v....v>>
.>vv>>>>....>....>..v...vvv.v.vvv.vv.v.....>>v...vvvv.>v.v..>.......v..v>...v.....vvv>.>v...v>v>.>.v.v.>v.vv.v>.>..>.>.......vvv.>>..v>.>..
..v......>>.vv>vv.vv>.v.>>..>v>v>>...vv...>.v...>>.>..vvv>vv.vvv.v...v>v...v...>v.>..>..>v.>v..vv..>..>.>v..v.>...>..>>>...>.........v.>.>v
>vv..>.>..v.>vv.>>>..>..>vvvv.>v>>v..vvv>..>.v..>..v.vv..v>>.>vv.>v.>>v...>..v>.v.>v...v...vv..vvv>>v>.v>.v..>..>>.>.>>.v....v..>>.>...>.>v
v.>>.>>>v.v...v>v.v>....vv>.v>..v.v>.>..v......v>.>....>>..vv....v>...>>>.v......>.vv>>>v>.>vvvvv.v....v>..v>vv>.v>.>...vv.v>vv>v..>>.vv>.v
.v.........v.vv..>..v....>v....>...>v......>...v.v>v..>.v.>...>vv..v...>.>.v>>..v.v>v>.v>>.v......>vv..v>v...v.v.>.>.v>.>v....vvv..>.v.v>.v
..v..v.>>...>.vvv.vv.>....v..>..vv.>v.>>v..v..>.v>v>.v>.v.....>.vv.>.>v.>..v>..v..>v>v..>.>.v..v>.v>..v>...v.>v..>v..>....v...>>>...v..>...
..>.v.>.vv..>v.>>.>.v.v..v>v....>.v.......>.>..>.>.>v>.v..>.>>.>v.>.>v>v..v.>..v>...>..v.>v>>>...>v...........>>...v.vv..v.v.......>v..v.v.
>>v..v..>>v.v..v..v>.v>.vv.v>v..v.>..>v>>v..>>v...v>>vv>...>>>...>...v.v.vv....>.vvv.>.......>.>..>v..v..>.v>...>vv>v...v.>.v..>vv>.>>>v...
vvv.....>.>v.>v>v.v.......>...v..>.vv>>.>>....v...v.vvv...>.vv>>v>.vv..v.v..vv>.>..v.vv>>>...v..>v.v.vv..v.>..>.>...v>....>vvv..>v....vv>..
>v>>>vv.v...v>.vv>...v..>>.>>>v>>v.>vvv..>.v.v>>..v>...>.v.>>.>v........v.vv>v.>.v.>.>v>vv..>>.vv....>...>>>.>>..v>.vvv>>.>.>v...>>v>v.>>v.
>>>>v.>...v...>..vvv.v......>>v.>v.v>.vvv..v>>>.>.>..vv..v..>>..v..>..>v.v.>.>...v>vv..vv.>>......>>>.>.>>v..>>...>.v.....v..>..>>..v>>vv..
..v....>.>v>>...>..>>>......v>.....v..>........>>>>vv.>>v.v..v>.>>>>v..>>....v...v.>.vv.....v....>.v>vv.>....v>vv..v.....v.v>>v..vvv.v.v..v
...>v....v>>.v.vv..>..>>>.v.vv>.>...>vv....v.v>.>>v..>>..>.......v.v.v>..v......>>.....>....>...>.vv>.>.>..>...v>.v.>vv>>>>v..>.vv.v.>>..>>
..>v>v..v.>.v.v.....>v...>vv..v>v.>v>.vvvv>...v.>>.v>.>v>v.>v>..>...>>...v.vv>.>.>...>.>>.v>>>>vv.>vv>>.>.>>v..>.>.>>vv>.>>.>..>v.v.>..>v..
>...v.v.v..v.v>v.>>v>v..>vv>v.>.vv>...v>.....vv>.......>...v>.>...v..vv>.vv.vv>.........>..v>>.v>v.>.>v.v>>v>..>>..>.......>>.>>>.>..v>v>.v
....>..v....vv>....vvv.v.>..v.v>vv..vv...v..vv..vvv...>v>....v.vv.>...v>v....v..>.>>>vv..>....>...v>>>.>vv.>.vv>.v>.>.v....v.vv....>v>.v...
..>.vv.vv.>....>.>>..vv>..v...vv.>>vv>>>.>>>.....vv.....v.....v>>.>>>v>v.v>.>>..v.v...v.v....vv.>..>>...v.>>.v.v.>....>>..>.>>......vv..>>>
v....v>..>>...>.v.v>..>..v>.>.>...........>>..v....vv.v...>v.vv..>>.....>..v.vv...>v..v>v...v.v>>.....>.>..v.>>.v..v.v>v>>>.v......v.v.....
.>..v..>.>..>vv>.v>.vvv.....v..>>>.....v.>v.>v>.>>.>v.>.>vv>.v.....vv.>.v.>...v>.>v...v>.v.vvv>.v...v.v>..v.>v..>...v>v>...>>v....vv...>>vv
v>v....v..>.>v>.v.v.>.v..v..>>vv.v.>...>>.>....v>..>.v>v.>vv>....v..v>.vv.>v.>.v.v....>.v>.vv..>.>..v.v....>.vv...>.v>vv..v>v.v>v..v.>>>vv.
>>...>v.v.>v>>.vv.v.>>v.>>v..>.>vv>.>.>>..>..>...>...>vv..vvv.>v.>vv.v.>.>v..v...vv>..v.>...vv..>v..>.v..>.v.v.....>..v.v.>....>.>v>...v.v>
v>.>>v.......>.>......v...>>.>v>vv....>....v.>vv.>..>.v...>.>v..v>...>>.vv.>.v.vv..v.>v.....vv...>...v.>...v.>..vv>>>>v.>.v.>...v>.>.v>>...
>.>.vv>>>.v>.v....>vv.vv.>...>.>.>.>>.v.>.v...v...>vv...>..vvv....v>.vv..>>..>..v...>>.v.v..>...v...>.>....>>.>..>v>v>.v>>..vv.>v>.>.v..>>.
...>.v.>>.....v...v...vvv...>>.vv>v>.>...v..v>.>.v...>>>.v.>>..vv>.v>vvv....>...v>>.v>.>>>.v.>vv...v.v.>..>>v>v.>....>.....>.>>...>........
.....>..v>vvv>>>v....v>....v.>v..v.v..>..v.....vv..>.>.vv..v..v.....v>.v..>v.v...>.....vv.v.v.>...v.v.v..>..>>....>.>..........v.>>>.v.>v.v
..v.vv>.>v.v>..>vv..vvvvv..>...v....v.....v>>..>...>...>.....vv>.>v.>....v>>..v..v..v.>>.>>.v.>v.vv.>vv>.>>.....>.>>...>..v.>vvv.v....v.v..
>>>>...v...>>v..>>>>v>>>>.vv..v>v.v.>.v.>v..>>v.>>vvvv>v>vv..vv>.>>.v>>>.>>..v.v.vv.>vv>vv.>vv>>.....>.>>.vv....vv.....v..v...>.....vv>.>.>
vv..>...v.v>v>...vvv>.>...v>..vvvv.v.vv>>.....vv>....>vvvv>.>..>.v>.>.>.v>>.>>v..v>v..v.>v>.>...v......vv>.v...vv...>.>v>.>v>v.v>v.vvv.....
.v>vv>..>.v..>>..v..v..v.v>.v>v...>...>....>..>>v.>>.vv>v>.v...>>.v.>..v>.....>v>v>v.v.>>...v.>v.v>.v>v>..>.v>.>vv>.vv>..v>....v.v.>.>..vvv
v..>>.>>>........>...>v...v>..>>....v.>..>...>..v...v.>>.......v..>>v.v..>v..>v>vvv>..>v..>>v>>>....>..v...v.>...v...v>....>v>.>>.>vv...>.v
v>v..>vv.vv...v>...v.v.v.vvv>v>>v>..>..vv...>v...vv...v.>v..v.v..v..>v.v.vv...v.v..>.v>>v>..>>vv.>.v.>v>v>.>>...v>v>..v.>>....v>.v..v.>.v..
.....v.>..>..v>.v...>.....v>..>.v..v.>v>.>v..v..>..>>v...vv.vvvv.>...>vv.v>>v..>v.>.>.>vv..>.v..vv>>..>>v.v.>v.v>>v>..>v.v.v...vv.>..>>.v..
>...>v....>..vvv.>..>>>..v>.>.v...>.v>>..v.>..>..>v.v>.>>...>>>.v..>.v...>.>vvv.v.>v...v>..v.>v.....>.v>.v....v>.........v>v...v.>v......>.
>>.vv>.>...v.v.vv.vvvv...v....>.>.>..>.>>.v..vvv..v.>>>.>>..>v....>.vv>v.vv..v...>>.v>>.>.>vv.>.>v...vv..>.>.v>...>v.v.>v.v.>.>>.....v.>...
.v.v.v...v.v..>..v>..>.v.>....>.>.vv...>>.>..>.>>...v....>>.>........v>v...vv>>>....>.>.>.....v.v....>.>>.>.v.....v....>.v>....>>.>v..>.>..
..v.>..v.v..vvv>.>..>v....>vv>v.......v>vv>>.>>..vvv.>>>v...v>.vv..v.v>..vvv..v.v>..>.v.v>v>...v...>..>>....>....>>..>....vvvv.>..>v...v>vv
.>.v>>>.v.>..v.v...>.>>...>>v>>.>.vv.>>.>...>..>.vvv.....>>.v..........>..>vvvv.>v>.vvv.>v.v..>.>>...vvv.v.>v..>>.v>v>>.v>..vv...>>.....>.v
v...v>.....>.v>.v.v.>>v>.vv.v>>.v...vv.>..>....v.>.>v...>...>.v.v..v>.>>>>vv..>..>.>vv>...v>>v>.>>>.>.>.>>>>v..vv>>vv.v.>...>vvv>..v>.v.vv.
.>>.vv....>vvvvv..>>v.>.>>...v..v..v>v>>.v..vv.v>.v.v>vvvv>.vvv.>v>vvvv...............v.v.>..v.>vvv..v..>...vv>.>..v.......vv...>v.>.>v....
v.v.v.vvv.v..>v.>>v....v>.v>>>v>v...vv>..vv>....v>..>vv.>>vvv.>.vv>..v..v....vv.v>v>v>>...v>>.v.v>..>...v.>.>>.........v.>.v>.>...v.v.v>.>v
v>.v>.....v..>..v.vv.vvvv..v.....v....>.>>.>>v>v.>v.v>..v....v..v..vv.>..vv.v.vv>....>vv.v.>..v..vv>..>v.>.vv.>v>v>.>vv>>..>..v..v...>....>
v......v>..>....>....>>...>......>...v.v.>..>>.>.>>.v.v>.>v>vv...v>..>.vv...>>v..v.....v>>.v....v..>v>vv.......vv...>>>..>>>v..>.v>.>>.>...
..>..>v....v>.vv>v...>>.>v...>>v..>vv.>...>.>.v....>.v.>v..>.v>>...v.v.v>...>....v.v..>v>>>vv...v>vvv..v.v>v>..>>..v>.v..>....v>.>..v.v.>..
vv>>>..>.>v..>>.>..v.>v.>vv..v..v..>v...>.>>v..>>.v>..v.>>.>>.>v.>v.v..>v.>>.v.....v.....v....>.>...v..vv.>..>v...>.v....v.v..v.>.>vv...>.>
v.vv.vv>v>.v.>.....v..vv..v....>v.vv>>..>....v.>.v>>..vv....>v..v>>.>v.>...vv.v>.>..v..v>>..>...v.>.v.v>.>..vvv.>.>.>.vv>vv.v.v..vv..>>>...
.>..vvv....>...v>.>.v..v...>.v>...v.v..v>.>..v..>v..v.vv>..>.>.v>>>.v>.>...v...>>.>.v>.>v.v.>>v..>vv>...>>.>>>>...>.>.>...>...>>>..>.v>v..v
vv..>.v..v.>>..v>>..>..vvv.v..>v>>>...>>.vvv>>v>.>.v.>..>v>vv.v...>>v.>>>>v...>>>.vv.>>.>.>>.v.....v.v>.v>>.v.>vv>>>>.vv..v>..>>..>.>>.v...
>.v>...>...v>>.>>vv>..>.vv..vv>>.>v.>.>....>>>.v>>.v.v.>>.v.>v.>>.>.vvv..........>.>vvv.>>.>.v>vv>v..>.....v..>>..v>.>v>>>v>.v.....v.>.....
.>.v>>.>....v.v>....>>>.>..v>.>..>......>...v..>.vv>.>.v>..v>.vv.v..v...v>>>..>>...>vv.>v>.vv.>vvv....vv.>>>>.>>v...>.>>..v..v>>..>.>>.v.>.
>>..>vv>>.>v.v.>v.>..vv....v>v...vvvvv..vv>v.v..>v.v>>>vv..v.>..v.v.v.v>.v........>.>>vv....v.v..v...vv.>>.v>>>>..v>.>..>>...>..v...>.>..>v
...>....>vv.vvv...v>.v...v>v>v.v.v.vvv.>vv..vvvv.v>...>........vvv.>...v.>.>vv>>.....>vv>.>...v.vv>....>>.v>>vv>>.v.>v......vv>.v>v.v.v.>>>
.vv.>..>v.v.>>.>v.>v..v..>.>..>.v>>v.>v......v...vv..>v>.vv.v>....>vvv....>>...v.vv..v>v....v.v.>>.v.v.>vv..v.>v>.v........v..vv>...vvvv>.v
>.>v.v...>..v.>.>.>..>.....v.>.vvv..>>>....>vv...v>..>v...>..>>.v.>>>v.>.>....>>.v>.>>>>v>v.vvvv.v...v>>.>.....>vvvvv.v>>v.vv....v>.>..v>>>
.>..v.v.>.....>vv>>.>.>v..vv..vv.......v.>v..>>.>v>...v.>.....>....>..v..>>....>.v...>.>.v.>>.....>v....v.v>vvv.>vv.v...>.vv..v.>...v>.v.>v
.v..v>.vv>v....>..v..v.>..>...>>..v>v.v.....>.v>v.v.>>>v>v.>>....>>.>>.>.>>...vv.v.>>..>v...>>vv.v...>..>>.>>.>..>..>..>.>>v.>..>>....v>v>>
.>...>.>..v....>>..>>vvv>..>>>.v.>.>v...>.vv>.>.v>..>....>..v>..v.>>.>>.>>v>.>.v>..>..vv>>..vvv..v..v.vv>>..>.>v.v..>v.........v....>.v>.>>
>.v>.>...vv>...>>v>..v..v..>vv..vv.....v>>>v>.vvv>v>v>.>v..v.v.v..>.v.vv>v....>>......>.>>...>.>>>....>.v...v>..>..v>>>>.>..v.vv.>v..>.vvvv
>.>>.>>>v>vv.v>.v>.v>>>>>....>v.>>>..>.v>vvvv>v>........v.v>v>.v>.vv...v>>....v..>>v.>>>.vv>>.v.>v..>>.vv.vv>...v.>..v...>..v>..>>vv.v.v.v.
.vv>...>.vv.v>>>.>vv>v..>.>>>...>...>>.>.v..v>....v>>>.v.vv.......v>..>vvv>...>..v>>>..vv.v....v.>>v.>..>v>.vv.>>.v.v>v...v>>v.>vv.>..v>>vv
....>...v>v.>..>v>vv>...v.v>.v.v..>.v..>.>>vv..>.v.>.......>.>v>v..>...v...v.v.......>....v>..>.>vv>..vvv>>>v.v>vvv.vvv.v.v>v>>>vv..vv..vvv
.......v>>>.v......v..v>>v.v>..v.vv..>.>.>v.....>v>>>.v>..v..>.>.v..v>....v.>v>........v>...vvv..v.>...v.vv.vvv>...v.v.v.>.v>v>>>>>..v....v
..v.>...vv.vvvvv>>.>.>.>...>>>....>..>.v>>vv...>..>...>v..>.....vv..>v>>.v...v....>v.....v.......v..v...vv>v.>.v>...>v>v.>.>>v>.v.>........
.>..v..vv.>....>>v.......>..v.....v..>.>..>v>.>>..>>.v.v.v.>.v..v.v.v>.>.>.vv>>....v.vv>>..>.v....>..v..>..v>..vv.>.>v.>>..>v.>.v>v>v..v.>.
>..>>.v.v.>v..v.v>.v...>......vv>>v..v.>v...v>.>>>v....>.>>v.v..v..vv.vv.vv.v...>..vvv.>..>>.v.>.v>..>.>>>...v.>..>.....v.>.v>..>....>>v.>.
...v>v...v...v.v>>>..>>...>.>>....>v.v..>vvv..>.vv>>>>.v.vv>v.>>.v.>v.........v.>>.v>>.>v>v..>v....>>...v.....>.>>.....>>>vv>>>.>v.v...>...
..vv....v.>v..v...>>>>v>>...v>...>v.v>.>.v..v>..>..v..v.v>>>.vvv>.>.....vv.v.....vv..v>....v.>v..>>>.vv>...>...>vv>....v>v..>v.vv>..v..vv>v
..>>vv.>v.v..v>.v..>.v>.>.>v...v.v.v.v>.>.v..v>..>vv.v>>>vv>.>v.v>>.>>..>.v.v>v..v>>.>.v.v.>v.>.>..>>vv>.....>v.v...>v.>v.v....v.>>.v>.>.>.
..>...v.>vv>>v..v>......>v....v.vvv.>..>.v>v>..v...v>v.v>>vv>>..v.>..>...>>.>vvv.....>.v.........>v.>>.>..v.>...>>.>.>.>v>v.........v.>v.>>
..>v.v.>>>>...v..>.v>.v>.>v>v..vv.>.>..>..>v..v.....>.v..v>....>v..v..v.>>..>vv.v>v...>v>>>>>.>>v...>.vv....>>v....v.>v....vv..v...vvv..v..
>>>.>v.v.vv>..v>.v>.>.>>.>v.....v..v...v>.>.vvv..>>...>>>v..vv>.>.>.v>.>.....v..v>v.v..>>v.v>vv.>>.vv.>.vv>>.v>..v.v>..>vv...>.....v>>>v..v
...>v.v.>v.v>..v>v..>.>v>>v.vv>.>v.v.>>.>>..>..>v.....v.>v.v..>>vv..v>...>>v....vv..v.>..>.>.v.v.>.>..v.v>>.vvv>v..v...v>>>..v....vv..>..>>
.....vv>>>.>>v>.>>>>>.vv....v..>..v..>>v.v>..>.vv>>..v.v.>..>>.>..>.v...vv>>vv.v.vv.vv...>>vv.>v...v.>>v.>>>>>>..>..>.v>.....vv>v.v....vv..
>vv.vv>vvv..>..v>v>v>v..>>>v>..>>v.>v>v..vv.>v.>>vv.>>>..v.....v...v.>.v>v.v......v.vv....>.vv>...>v...>v.v...>>vv...v>.....>.vv>>>..v>.v.>
v>>.>v...>v>..v.>.v>v..vv>..vvv..>..>..v>vv.....>>v>..>..>..>...vvvv>>....v.>.>vvv.>.v>>>....>v>.>v>v>.............v>..v.v>.v.v.......v.>v.
.vv....v>.vv>vv>..>.>....>...v>>vv.....vv..v.v>.>>.>>....v..v.>>v>>.....v.>v>.....>>...>>>....v.>>..vv>>>>>vv..vv....v>..>v.v..vv.v..v..vvv
>v.>>.v.>.>>v>>...v...v.......vv....vvv.v>.>..vv.v...vv>>.v..>>.>......>..v..vvv>>>v...vv.>...v...>v..>.v...>v>v...>>.>...v..>.v.>vv>....v.
>...>v>....>.>.v.vv>..>.>v..>..v.>v>v>..>v.v..>>vv.>>..v>>>vvvvv.>..v..>v.v..>>vvv..v>...v>>v.>..>.v.>.>...v...>...>.v>.>..vv..vv.>v...v>.v
..>>v.>.>..v.v.v..vvv..v.v>..v.vvv..v>.>v.v..>.....v>.v>..>...vv..v.......v.>v..>.>.>v.>..v.v......>...>v..>v.>>v..v.v..vv......v>>..>>v>..
>.>>v.v>>...v..>vv.>.v>>.v.v>>.v>..>>>..>..>.....vv......>v>.....>vv..v.>v...v>.vv..vv.v>..v.v..v...v>....>...v>>v...>.>>.v>...v>.>>.>v.v.>
..>v..v>>.....>>>..vv>v..v>v>vv.v.>v.>v.>.v.vvv..>.>......v...v...>...>.>.v>>v.>.vv.>..>...vv..>..v..v.vvv..v.vv>vv>>.v....v.v>..v..>....vv
..>v>...v...>.v.v..v.v>..v>>.v>...>.v>....v>v..>>>..v>.v.v>>>>.vv>..>>.>.v.>.v>...>.vvvv..v.v.vvv.>>>>...>v>>.....v..>..>vv.v.vvv>.>..v.>.>
.>..v....v.v>>.>....>>>v.>v>>..>.v.vv.>v..v..>>vv>>..v.v>.vv>>.v.>..>>>v...>...>>>v..v>>>.v..v...v..v..v.v>.v.....vvv>..v...v.>>v>v.>>>vv>.
v..vv.vv.v..v.v..v>..>v.vvvv>.......>v>v..>........>v.>...v..vvv>>.v..v.>....>>vv.v>...>vv>...>..v....v...vvv.>....>....v>>.>.v..>...v>....
v.vv>>>v.v..>v.v>.>>.v.v..>..>>v....v>.vv.>>v..>..>...>.>>..>....>>.>>v....v..v>..>.v..>.v..v..>>.>>>>..>v...v.v>v>v.>v.>..vv.>..>.vv..>.v>
.>>>vv>>.v.vv.v>.vvv.>...v>..>v.>..>vv.>>vvvv.vv.>v>v...v.v>.>>.v.>..vv>.v....v>vv>>>v>v.>..>..vvvvv.>v...>>>v>>.v>.>.>..v>.vvv..vvv.>..v..
.............v>v>....vv.v.>.v.>>...v.>>...>.v>.v>v>>...>>...v.v..v>v>...v..>v>..v....>.v..v>..vv.>>.>..vv>..v>v..vvv....v.>vvv..v.....>v>.>
.v...>..v>..v>>.v.>.vv..v.>>...v>..v.>...>>vv>vv>..>..v..v>>.>v.v.>vv>.>v.v>..v.>v>..v..>...v....>v.>vv>v>..vvvv>....v>.>v.>..>>v.v.v.v>>v.
>...>.>.........>vv......v..>v.>v>>.>..>.v..>>...v.v>v..>>..>vv>...vv>.v.>v...>...>vvv>..v..v.v..v....>....>v>..>v.>..>..>>>....>vvvvv..v..
vv>>...>>.v>>>v..>.vv.>>>>.>.v>v>vv>..>.>vv>>v..v.>......vv.v.v..>..>...>..v>>v.v.v>...>>>v>...>>v..v>.v..v.>>>vv.>>vv...>>........>vv....v
....vv>.....vv.v>.vv.vvv>vv....>>>.v...v>v........>..>....>>.v>..>v>>.v..v..>.vv.>.v.v>>>>..>>.>.>.>.>.vv..>v>.v>...vv.>>v>v.>>.v>v>vv>>>..
>.v.>...v.>>>..>vv..>.v.vvvv.v>v.>>.>....>>.>>v.....>.v>....v..v.>>>....vvv>.v>...v>>.>v...>v..>..vvv>.v.v.vv>v.v..>v>..>.>..>..vvv.v.vv>v.
v>...v..>>>v..v.>..>..v.>.>.vvv.v.>>.v>v..>.v>.v..>>>.vvv.>v..vvv..v.>.vv>.......>.>..>.v.vv>....vv>..>>.vv..v>v.>.v>>..v.vv>..vv.vv.....>>
vvv.>>v>>v..>>....vv.vv.vv.....v..>.>..v>>......vv.>v.>>vv...>v.......v.>>v.v..v...>..vvv....vvv...>..>vv.....v.v>.>..>v...>v.>.v.vvv...>>>
.>v.>..vvv.>>..>.v.....>.>vv>.vvv..v.v.....>>.>....>>vv.vvv>>...v....v..v>.....>.vv>vvv...>.>v>>>..>......vv...>>...>>.v.....>.v>>vv>.v>>.v
>v.v.vv>v>v..>>v.v....v>>>.>...>v.v>v.v.vv>.v>.vv..>.>..v.......>.v>v.vvvv..vv.>>.vv.vvv...v..>...>....>v..>>>..>....>..v..v>..v..vvv..v...
>.vv.v>v.v>..v..v.........>.....>...>v>.v>>.v>>...>..vv.>>.>vv.v.v.....>.v...>vv>>v......>.>.>v>...>.....>>..v......v.vv>vv>v>...v>v>....vv
v>>vv.v>.>>v.>v>...>.>..v.vv..>>..v.v..>v>.v>.v.v..>...>...>>..v>>>v.>.......vv.>v.>>.>>......v..>>.>..>>...v>>>v.>v.v.>vvv....>vvv>>..>...
>v>..v>......v..vvv.....>.>>v..v..v....>>.vvvv.>>v>vvv.v.v.v>>>v.>v.>>.v....v.>>.>..>..v.....v>.vv....v.>v.v>..v.....v.vv.>>vv>...vv.>>.>.v
.v.>.v......v....v>v.>.>v.v>.>.v...v...>.vv..v.vv..v.v..v..v...>.>>.vv.v.>vv.....v..v.>>.>.v.....>.>.v.v>.>v>.>>>..>.>...v>.>>.>>..>>.v.v.>
..vvv.v..>>..>v...>vv...>>.v.>>v...>>..>.>>..>vv>..>.>>..>..>..>>>....>.>.>vv.vv...v.v.....v>v..>.>...vv>>>>v>vvv............>v..>v.v.>.>v>
......>..vv.....>>.>..vv.>vv...v.v...v>v.>.>v>.>v..>.>..vv.>.......>v....v..>....>v..v.vv.>.v.vv..v.v.>.v....>v.vv....>..>vvvv...>>.>.vv...
>...>>>vv...v.v.v...>>vv.>v.>.>v>.>v..>>..v..v..>..>.>..v>.vv>...v..vv>>vv..>..>>v.>..v.>..v>..>.....>.vv>..>>>.>.>vvv.vv.......vv>vv>.>.v>
vv.vvv..v...>vv...v.vvv.>v...vvv....>v>.vvv>v>..v..>.>>>>>.vvv..>...>..>.>..>v>.....v.....v.v>>>>.>vv.v..>>>.>>.v>..>..>....>..v.>>.>>.>.>.

74
2021/day25/main.go Normal file
View File

@ -0,0 +1,74 @@
package main
import (
"fmt"
h "git.bullercodeworks.com/brian/adventofcode/helpers"
)
func main() {
fmt.Println("vim-go")
inp := h.StdinToStringSlice()
field := h.StringSliceToCoordByteMap(inp)
part1(field)
}
func part1(f h.CoordByteMap) {
// Run until no cucumbers move
var steps int
var done bool
for !done {
east := f.FindAll('>')
eastMovers := make(map[h.Coordinate]h.Coordinate)
for i := range east {
var check h.Coordinate
if east[i].X == f.BRX {
check = h.Coordinate{
X: f.TLX,
Y: east[i].Y,
}
} else {
check = east[i].East()
}
if f.Get(check) == '.' {
eastMovers[east[i]] = check
}
}
if len(eastMovers) == 0 {
done = true
} else {
for k, v := range eastMovers {
f.Put(k, '.')
f.Put(v, '>')
}
}
south := f.FindAll('v')
southMovers := make(map[h.Coordinate]h.Coordinate)
for i := range south {
var check h.Coordinate
if south[i].Y == f.BRY {
check = h.Coordinate{
X: south[i].X,
Y: f.TLY,
}
} else {
check = south[i].South()
}
if f.Get(check) == '.' {
southMovers[south[i]] = check
}
}
if len(southMovers) == 0 {
done = done && true
} else {
for k, v := range southMovers {
f.Put(k, '.')
f.Put(v, 'v')
}
}
steps++
}
fmt.Println("# Part 1")
fmt.Println("Stable after", steps, "steps")
}

9
2021/day25/testinput Normal file
View File

@ -0,0 +1,9 @@
v...>>.vv>
.vv>>.vv..
>>.>v>...v
>>v>>.>.v.
v>v.vv.v..
>.>>..v...
.vv..>.>v.
v.v..>>v.v
....v..v.>