This commit is contained in:
Jonathan Chan 2021-12-24 22:02:46 -08:00
parent 985aa61374
commit 001c01cff1
2 changed files with 194 additions and 0 deletions

137
input/25.txt Normal file
View File

@ -0,0 +1,137 @@
vv>v......vvvv.v...v>..v..>...>>.>.vv>vv>.v>v...>....v...>>...>..>..v..v.>.>.>v>v.>v>.v>.v.>.>>>>>>.>>v..v...>v..vv>>v.>.vv.v.>>.>.>...v>v.
v>...>>..>v.>>v>...vv..>>..>>v..v........>>.v.>>.>.vv.>.>.>....v.>>.v..>.>>.v.....>.v>>vv>...>>.>..>>..>...v.>...>v.>.....>v>.v>v>>>..>..v.
.>vv..v.>...v>vv.vv..vv>.>...>.....>v....v>>>.v>v.>vvv..v>...v>.v....v>vv>...vvv.v>.>>>>...v>.vvvv>v>vv>.>.vvv.........>>>v..>..vv>...v..>.
..v>>.>>....v..>>v.>.>...>>>v.v.vv.......v>..v>vv>v>v.v..>.>>..>v...>vvv.>.v>>v>v>..v.vv....vvv>>v>vv.>>>v....v.>..v.>.vv>>>>>.....>v>...>v
...>>.>.>vv>>......>vvvv>..v.>.>.>.>..>...>v.v>>v.v.vvv.>vv....vv......>.>>..>..>v.v..>.>>>..>v..>...>v>....vv...v..>>.>v.>...>v.vv>.>.v..v
v....>.>vv.>>>v.>v....v.....vv..>....v..v>>v>.>..>..>.>.>>..vv>.>>.>>>.>.>>v>..>v.v>...>.>...v.>.vv..v.v...>>...vv>...>>v>.>>.>>.>.>..>..>>
...v>.v>>....v>.v.v>vv>..........>.>.>>v..v>..v>.v.v..>v>v>.>vv>..vv..v.v>..>....>...v>..>.vv>.>vv.v>>>.v>>...vv>..v>>..>..v.v>v.v..>...vvv
>.>.v.>...>v.>.>....>..>vvv...v....vv>>>.>>>.v..>>>v>vv>.v.>vvv>.>v..v..v.v>.vv..v...>vv....>v.v.>.v>.v..v..v....>v.>v..v>>.v>>....v>.vv..>
.>.>.v.>vvv...>v.v..v.>.>..v..>.>>v.v.>>.vv>>>>..v..vv>>.v..>.....>.v>.>>>.>vv..>>>..v.vv....vvv>v>..v..>v.....v.v.v...>>>vv..>v.v..v.>..>.
v>v...>...>.v......vv.....>.>>v>.>>.>v.v.v...v.>vv..v>>.v>>.>.>..vvvvv>.>v.v...v...v>..>...v...vv>....v.>>vv....v.v....vv..v..v..vvvv>v....
.vv.>.>v>.v.v.>>.v........>>..>v.v.v.v..v>..>v....vv>..vv....>>...>v>.>...>.vvv>>v...>..vv.>.>>>.vvvv...v>vv..vvv..vv>...vvv.>v.>>.v...>>v.
.....v...>v.v.>.>>>>>.vv>..v.vv>...vv>...v.v..vv.v...v>>..v....v>v..v.v.>v.>>vv>.....>.>>vv..v.v.vv.v>......>>>...>>...v.>.v.vvvv......>>>v
.>.vvvvv>.>..>>.>...v>>>.>>......vv>>.v......v..vv..v.vv>v...vv>.vv.vv....>>.>v..>>.>.......>.>.v.....>>.>.......v.v...v>..>>>..>>>vvvv>.>v
.......v...v>v..v>>>.>.v..vv>.>.v.>.v.v...v>.....>....v.....>......v....>...v.vv.>vvv.>.>v..>>>v....>..v....v.>..v...>>>.vv>>v.>..vv>v>..>.
v.v>..........v>>>.v.v..>v>vvv>.>.>>>v>.v>.v>v....>v>.v...v>.....>..v.v>.v>>>v.v>...v.v>>>v.v>>.>..>.vv>v>...>>..>.>v...>.v....vv..vvv>..vv
v.v..>...v...>...v...v.>..v..v>....v.>>...>>vv..v..v>v...v..>v..v>v>.>.>.>.>.........v.v..>.>.v>v>>..>...>.>.v.v>v..>>v>..>.vvvv..>.v>>.>v.
.v..v>v..v>v.vv>....>v>vv.v....v..>..vv.v>.....v..>.v>v..v.>v>>>....>>.v>v.v>>...>...>.>>>..>..>v>vv.vv>>v.>>>v.>......vv>v.vvv...>>>..v>>.
..vv.......v..>vv>v..>.>>..vvv.>vv>>....v.v>vv>>.>>vv...v..v.vvv.vv...v..vv>>...>.>v..v..>.v>.v>v.v..>>.>..vv>...>..>..>..>>..>.v.>v>>>>..v
v>v.v....>.>.v...>.>v..>>>.>v..v..vvv>.>>.vvv..>v>>>>......>..>...v.v>>>.v>vv.>...>.>.vv>....v.v>vv.>v>v>.....>..v.v....>.vv>v..>v>.>...v..
.>v.>v.>...v.>>>..v.>vv>>v>.v...>..v.....vvvv>.v..>..>.>>..vv..>.>.>>........v>.>.v......>.v..>>v.>v....v>.v.>v.>.>v.>.>>>.>...>vv.>.>.v..v
v..v>.>.>.>.>>v......>v..>.vv.>.>>..vvvv..v..>..>....>>>v.v>.>..v.v>v>..>v.v>>>>v.>....>.v.>v.v.>>>..>.>>.vv..v>v.v..>.>..vvv>v.vv..>v.vv..
.v.>...vvv.v.>.v.>..v...>.......vvv.....v.>.vv>vvvv..v.>..>..>>>...vv...v>vv>.>.v>.v..v...vv.v.vvv...vvv.>v.>>...>v...>.vv>>.>.>v>>v.>>..v.
v.v>>v>v.>...>.v>..v>vv...v>.v........>..>v.vvv>..>>..vv>>..vv.>....v>>..>vvv.>....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>.vvvv...>.>.vv.>>.vv.v.>v.>>>>v......vv..>v..>....v>>v.>>
vv>vv.v.>.vv....v..>.v......v>.vv...v..>.>v.vvv..>.>vv....v>.>.>..vv...>v>>v..>vv.v.>v..>v.>>...v.v..>..>.v..vv>v>v>...>v>v..>>>.>...vvv>>.
.>.>.vv.v...v>..>...>...v..v>v...>..v.vv..>..v.v....v.>v.v>>>>>..v.v.>...vv>vv>v.>....v..vvvv>>......v.v>..vv.....>>v...>.v>vv...v>>..>.>.>
vvv.v..>.vv>....>vvv....vv.>vv.v.>v.>v>...>.vv>>..vv.....>>>>...>.vv.v.>v.v..>v>>vv>v..v>>....v>.>>.....>>vv..v..v>v....>..>..v.....>vv....
...>...>vvv.>.....>.>vv...>v..v>>.>>..>>.v>>>.>>.>...v...>vvv.........v>....v>>v>....v.>...>.....v..v...v..>.....v..>v>v...>v.v..>>.v..vv>.
..>.>.vv...v.......vvv>.>..vv>v....>v....>.>...>v>v...>.>>.vv.>...v>....>.v........v....>.>.>.v.v...>v.>v.>.v>>>vv..v>.>..>....>.>.v...>v..
v.......>.vv>.v.......>...v.>..v>.....>..>v>v.....v....>vv>>..>v..vv>...v>..v.>v.vv>v...v.>vv.>v...>>.vv>>.>v.>.>.v...>.>>.v.v..vv.v>vvvv.v
.v>..>..>v..>.v>.......v>...v>>>..>.v>v>v.>..v>..vv.>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>vv..v..>.v..v.vvv>>>vv.v.v.v.v..v.>v>.v.v>.>...v..>v...>v..v>>>..v>>..>.v.
v..v..>..>v>...vv>>vv>.>>>.......>.v.vv..>..vv.vv......>......v...v.vvvv>.v.>.v>..>...>>>>vv.>.v.>>.>.v.v>v..>>vv>>>.....vvvvv...v..>...>..
..v.>v>..>.vv....>v.....>>...>v...v..>..v>.vv>..v..vv....>.v....v.....>..v.....vv.v>v>..v......v...v>v.......v..>.>..>>v.....v>.>.v.>.vv...
.v>>vvv>..>v>.>....vv>v..>...v.v..>.vv.....v>>v>>.>v.>.....v..v.>..>.v>.>.>v..v>....>>>...>...>.>..v.>>.>>v...v..>v>.>...v...v>v>v.>>......
.vv.>v>.>v..vv..v..vv>v.>>>....vvvv>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..>.v>.v>.v.vv..v.v...vv...>.vv.v>>...v.>vv.>.v>..>>v>.vv....>.>..>v.v..>>>..>v.v.>vv>.>.....v..>v>>.>.vvv..>....v>.v>vv>...>
v...v...v..>.v>.v..v.v>v..vvv.>.>....v>>...>>.v>...>v...>...>..v>v...vv>...v...>.>>.>.>.....>v...>..vv>v..v.>..>v.v.>v..>>>.v>>.>v.v.vv>.>.
>..v.....v.v>v.....>>vv..>.>.>.....v>....v>v>>.vvvv.>.v...>vv..vv..v...v.>..v..v.v>.v.>v>..>>vvv..>vv..vv>.v.v>>vv>vvv...v..v....vv..>.>...
>v>..v.>>>...>...v>.>.v>v...>v>>.v.>>v>.v.vv..v.v>.v>.>>..vv>..>v>>.>......>.v>..v.v.v.vvv.>v>v.>.>vv....vvv..>.v....v...v...>..>>vv...>...
vvv...>......v>>>..vv>.>>....>.>>v...>.>>.>.v..>>>>.>>...>.vv.v.>.v>.>..>>.v>..>.>v.>..>v.v>vv..>..>>.vvvvv.>.>v.>..v...>>>....vv>>.vv.>vv.
v.>>.>.v...v..>.v.>v.....v.....>v...>.>..v..>.....>vv....>..>>v>vv..v.>..>........>.>..vvvv>....v.>v>v>...>..v.v.>.>vv>>>v.v.>>..>.v>>.vv..
.>v.v>.>v.>>..v.v>....>v..v>.>..>..vv>>v..>vv>.>.v..>vvv>.>>v..v..>...>v.v.v..>...>...>.>>..>..vv..>vvv>>.>v...v>.v>..>vv..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>.>.>>.>>...vvv.
.v...v..v>..>...v.vvv..>..>vv....>...>v>v....>..>v.>>.>>v>.....>>...>v..>..>...>vvv.v...v>...vvvv.v....>.>vv.>>>>....>>>..>..>.v...v>..>v..
..v.>..>....>.>>.>>v.v......v>.>>.>.>.v.v>..>>....>...v>>>.v>.>.>vv.>>.v>..v.>.>.v>>v..>...>v>v>.>..v>.v.>>.>.>>.....>.v>vv..>>vv...v.....>
.vv.>.>v.>>v...>....v...v..v>.v>.>.v.>>>vv...v.v.v>.>>..v>.>...>.v..v>.>.vv.>v>.>...>.>.v...vv.v.v.v..>>..>.>.........>..v>.>.>v>v>.vv>.v..
.>..v>>.>>v.v.>....v....v>v......vvvv.vv.vv.v....>.>.>.v.>v.v...>v.v.v>.>.>v..v..>>v>.>>vv.v>>......>....vvv.v..v..v.>..>>.>>...vv.>>v..v.v
>....v.v>.>.>..>....>>>..v>.>.v..>....>.v>.v>.vv....v..vvv.>>..>>>>.>>vv.>..>.vv.....v..>>..v.>>v.>>..>.v....>>..>>...v>....v>.v>.v..>v>.>.
v.v..v>v...>>v>..vv.>..v.>>v...v..>v.....v.v.>v.vv.....>>v>>vv>.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..>.vv.....>v>v.vvv..v.v.>>v>v>v>..>..v>...>..>..>>v>>..>....>v..>>.v.>>>>.>..>........>>..
vvv.>>.....v.>v.v.>.>.vv.>.v....v.v>>..v.v.>v.v.v.v>.v>..v.....v>>v.v.>..>v...v>v.>.v.>.v.v>v.>....>>vv..v..v......>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>.>>..v..v...>..>v.>>v>v.>v.>..>.>
.vv...>v>v>.>.>...>>.........>.v>..>.v.>>.v.>>>...v.vvv>......v.vv>v...>v>>vvvv>..>..>v.v>vv>.>v..>....>.>.vv.v.v>..v.v.....vv.>>.....>v>..
>...>..>....>...vvv>.>....v>...vvv...v...>.v>>vvvv..>.v>..>...>.v>>v.v.v>>>..v>>>v>>>.>>>...>..>>.........>>.>vvv.>.....>..>...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>v..v>>....>v.>.v.
>.>.v.v>v..>>...>..v..v>...>>vv>.v.>.v>>.vv..v.>..v>v.>v>v.>.......>.v>>v..v.>v.vvvv>>v.>v..v.>>vv>.>.>.>.vv>>v..>.>v.vv.v>..v>vv.>.>>..>.v
>.v.v.v.>.>>..v.>.>>.v..v.>.v>.v>.vv...v..v..vvv.v.v.v..>vvv>.v>.>..vv.v.vv..>>v>..v>.>.>.>.>.>v...vvv.>..>..v...v.v.v>.v.>v.>......v..>...
..>.vv>.v.>.>.v.vv.>>v.>v..v.>.v...>.vv>v..>>.v.vvvvv>..>v>>.v.v..>>...v.vv..>..vv...>......>>>....>v..>..vv..>..>v..v>..>..>..>>.v>v...v.>
.>.>>v.>....vvv....v.>.>vv>.vv>>>>....v.v.v>>>.>..>>..>>>..>>..v.>v>>..v>.vv>v.v>.......v>v.>..vv.>v.v..>v>.>..v.v>...>>>...v>..vv..v>vv..>
..v.>>...vvv.vv...v>v.>>.v...>>>>.vv>v.>>v..>vv.>......v...vv.v>>v.v..v.v>.v.....>v>.>.v...>>..v.vv.>>>>>>>v>....>v..>vv.>..>..>v>>.v....v.
vv>>>.v......v..>.vvv.>.>.>v..v.>v>>>v>>....vv>..>..>v...>..vvv........v>>>..v.>v>v.v>..>...>v>>>v.>...>...vv>v......>.>vv..v>.>>.v...>....
>.>..vv.v..>>>v...vv>>>v.>>.vvvvv>>.......>>..v..vv>>v...v....v>v.vv.vvv........v>.v....v..v.>v.>..>>....>>..>vv...vvv.....>>>.>v>>v.v>v.>>
>>.....v.v..>vv.>.....vv.>>>..v..>>..vv>vv..>>v>v.>.>v.>..v.v...>.v.v>.>>.....>..>>.>.v.v>...vvv..v>v>>.....>..vvv.>>>.....v>>....v...>>>>>
...>vv.....>>>vv.>..>>>v.v.v>v>...>>>v..>.>...>.>>...vv.vv.>>.>>>...v...>>.>..v..vv....>..v.v.>v...v..v>.v>..v.v>>..>.>>>>.v.>v.>v.>v.>.v.v
..v>>.vv.v.vv.>v.v>>v.>>>..>.>v..vv.v.....v..v>v>.v..>....vv.vv.>vv.v...>.vv...>..>v...>..v>v.v.v..>>.v..v>.v..>.>vv.>.v>vv>..v.v>.v...v>..
v>.vv....v..>....v>.>v..>...>>.>>v>>..v..v..>v>..>>v...v..>..v....>v..v>..v.>v>v>...>..>....>.>>..>vvv......>...>.>.>...v....v>>v.v>>>.>v.v
v..v..>v.v...v>>.>..>>..v.v.v.....v>...>>.....>.>>..>..>.>..>.vv>.>>>v>>v.>.>>..>...>..vv....v...>>..>>v>.....v>...v>..>v....v.v>vv>>..v>.v
.v.vvv.v>>.....>...v.vv.v.v.....>>v.v.....v....v..v..>...v..>>.>.....>>>>>.v>..>v>vv.vv>.....>.>.>v...vv...>.v.....v....v.v.>......vv..v.v>
>v..v.....>...vvvv>>..>>>.>>v.>>.v.v.>>v..>.v...>.>.v..vvv...v.>.....v..vv>v>>.v.>v.....>...>>.v>...v>.>..vv.v...>.>..>v...v.v.>>..>v>.>...
>....>v>.>v>vv>v..>..>v....v.>>.>.>...v..>>v>v>>v....>vv.vv>>v..>>>.....>>>vv.vv...>v..>>>>.vvv.....>...>>vv.v....>.>>>.v.vv>.....>...>>v.v
.>vv.>..v.vv.>>..v>v>.>.v>>.>........>.v.v..v..>>vv>>>..v.....v.v>..>..>.v.vvv....>.>v>.v.vv.......>v....v..>..>...v>..vvv..v...vv.>.vv>..v
...>v......>..v.>>.>.v>.>.......>>v..vv.>>>>v.v>>v.>...>v..>.v>..>>v>>vvvv.>..>>v.>>...v>>...v......>vv..>..v.>....>>.>v>.>.>v.>>>v.v......
..v.>v..vv.....>...v...v>v.>.v>...........>>>..vvvv>......v.vv..v..v...v....>>v.v.>.v.....v..v>.vv.>>v.vv.>...>v..vvv..>..v.>>.>..v>...vv>>
v>......v..>..>vv.>>v.vv..v....v..>.....v....>..v.v>...v>.>....v>...>.>.v.....>.v>.>....>>v>v.>.>vv.>>v..>.vv..>>vv>..v.>.>v..v..........>.
....v.v>....>..>>..>...v..>..>>vv.vv.vv>..>..vvvvv.>.>v.>>>.vvv.>v..v.>>>..vv...>v>..>.>v...v...v...v.v>vvv>>....>..v>.v.v.v.....>>.>v>..v.
..>..vvv..v>>>.>v...>......v....>..>.>...v>...>>.v>.v..>....>..v>vv>..>>.vvv.>>v>..>.v..v>.vv.....v.>.v.>....>>...>v.>v>vv>.......v....>..>
>>.v>.>v..vv....>v>>>v.>.......>.>...>vv>v....vv.>>v..vv..>v..v>>v>.....v>v>.>...>>..vv.>.>v..>.......v..vvv.v..v...>.vvv.v.>vvv...>..>...>
>.vvv.vv.vvv.>>.>vv...>.>.vvv.>>..>>>>...>v....vv>.>>>..vv.>>>>.......>.vv...>>>v..v>vv...v.>...v.>..>v>..v....>.v.>...>vvvv...>vv..vv..v.v
....v..>...>v>>v..>....v>v.v.>v.v>.v.v....>...v..v>>>.>..v...>vv>..>...v.v...>vv.....>v.>.v...>>.>..>v.>.>..v....>>.>>v...v.>.v>.>..v>.>.vv
...>.v>v>>..>.v.vv>.>....v>.>.>>.vv.......>>vv>vv>.>v>.>v...>.v.>.>.>>v..>>..vvv>.vvv.v.vvv>>..>v>.v.>..v...v.>.v.vv>.>>>>.>v......vv>.....
....>.>.v>>v>>v.>.>.v...v..>.....>.vv...>v>.>v>>v>......>.>v>.>..v.v>vv..>....>>...v.vv..v..v>v>v......v.v.>...>v.>...v>>v.v....vv...>>.v.v
>.v..v..>>v........>.v...v..>.>>>v..vv.v>vv.v>>v.v.>v...>...>...>.>.>.>.v>......>v.>vv>>>...v...v>vvv>..>vvv.>>v>>.v..v>.v.vv..>v..v>>v.>.v
v..v..>.>>.>>.>v.v.>v>>..>.>.>v.vvv.>.v>.>>..>v..vv>v.>>v.>>v.>>.>...v.v...>.v..v....>.v>v>.>.vvv.vv.>v...>v>v>vv...>>..v>....v>>...v>>...v
v..vv>>...v>...vv>>>>v>..v>.>...>.vvv..vv.vv.>>>>>>...>>..>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.>.>.v.>v.>.>v>>>>v....v..>..v...v.>.vv.>>.vv.>>..v..vvvv..>v.v..>..>.>>>>..vvv>v
>.....v.....vv...v.v..v....v>v>..v>v>>>vv..v.>..>.....>>>......>>v..>..>>.vv>vv......>v...v...>v.v>>.>.>..v.v.v>>>.......>>.v.>>>v.vv.>vv.>
>v...>..>.v.>vv.v...>...>v..>vv....>>v...vv>.v>vvv.v.>.>vv....>..>.vvv>.vvv...v>>.>v>v>.v.vv>>.>...>..>..v..v>v.vvv.>v.>>.....v...v>v>>v.v.
v>>.....vv..>..>......>v...v>>v.>...>>>v.v....v.>>>.vv.v..>>v...v.>vv.v.>.>>vv..>>.v.v>..>>.>..v>..vv...>.....>...v>>>.>>vv.....>.v>>vv>...
v.....>>.>.v...>v..v.v.v>..v.v>>...>v.v..vv..vv...v>.>>.>...>v>>>.>...v.>>>...v..v>>>..>v.>v....>...vv.>>v>.v.vv.>vv>>v.>.vv.v.vv...v..v.v.
>v>v.>.>>>>..>.v>..>...>......vv.v......v>v...>>.v>v.v>.....v>>>v>..v>>.>v..v.v>vv>v...>...v>v...v...>..vvv>..v.>v....v..>>..v>...v>v.>.>..
...>>..>v>.......vv...v......vv>v...>v.>.>....>.vv.vv.vv>>vv>.v..v.>>....>v.>...>v>>v>....>v>...>>..v.vv>vvv.v...>.>v>>vv....v.>vv.>.>.....
>...v>v>.>>.....v>>...v>.>v.>.>>v>..vvv>.v.>vv>v.>v.>v>.>>vv.....v.v....v..v...v..v.>.>v.....>...>>>>..>.vv.v.....v>.v>..v>.>v>v>...v..>..v
v>.......v>>......>vv.vv>..v.>.>>..>>...v.>.>.>.vv>v>vvv.v..>>>.vv.>..v.>vv.>>.....>..v>vvv>.>.v>..>v......v>>.>>vv.v.v.vv..>vvv>.>>.>...v.
...>.v..vv.vv.v>vvv.>.v..>vv.vv..>v>..>.>vv>...vv...v....v>...>v.>vv>...v>v..v.>..v.v>.>.v.v>.v.vv>>..v.v.v>v>..>.v.>>....v..v..v..v>..>.>v
vv.v.>.>v....v..vv>>>.>>vv>v.>..v..vvvv.>.....>>.v>vv..vvv.>.>.>.>v...v>vvv.>..v..v...>.v>.>...v...vv.v.>>v>v>.>>.vv>.v.>>v..>.v.v>.v.v.vv.
.v>vv...>.v....v>..v...>v.v.>.>.>>.vv>.v.....>...vv..>>>.v....>v...vv>v.v.>.v.v.vv..>v.>.....v...vv...>>>>v>v....>..v...>....v..>v.v>..>>.>
..v>.v>>.>..>>..v>..>.>..>.>.v..vv.v>.vv>>.>.v.v..v.>v.>.>>v>>>.v..>>....>....vvv>...>..>.vv...v.>...>.>.....>>vv>>.>..v.>v.>....>.v.>....>
...>.vvv>>.>>.v..v.vvv..>.>.....v......>>vv>v.v.>...vvvv>>v>v.v...v.v..>.>v.>.v.v..>.v>..v.v.>>.>.v.....>..v.....>...v.>v...>.v..vv>...vvvv
>.>>.v>v>>v.>..>v>........vv....>...>.>>.>.v..>.v.v.>vv>...>v.>>>>.vv...>...>.v....>>vvvvvvv>vv.vv..>vv..>.>v.>..>..v.....v..vvvv>.v..v>.v>
v.v.v..vv>..v.v..v>v..v>....>>..v.vv....>.v....v....>>.>vv.>.v>.>.v>>...>.>.>.v>v.vv.v.v.>...v>..>>>v>.>>>>v.v....>.....vv.>v.>vv..>.v.v...
...v..v...>v...v.v.............>>vv....vv>vvv>>>.v>v>vv>v>..vv>.v>..>>.vvvv..>v.v.>>>v....>.v>..v.>v>>.v>...>>.vv...v>v...v.vv.....>>>>....
>>.>..v..>>v>.>vv....vv>v.>.>.v.....v...>>.>.>......v.v.vv.v...v.v.>>..v........v..vv.>>.vv..v.v.>>>>vvv>....>v..>vv..v>.>.>v....vvvvvv>v..
...vv>>v....v.>v.>..>.>......v>.>.v.>.>.>.v.v.>.>.>.v.vvvv>>.>.vv..>v.>.vv.>>..v>v.v.>.v>v.>.v>vv..>.v..vv>vv>.>v.v.v>......v..v.>v.>v.>..>
v.v>.....>v>.v.v.>.v...>.vv>v>>.....>....>..>.>.v.v..>v.vv..vvv>>.vv>..>>v.v..v.v.>.v.>>..v.>vvv...v>>..vv>vv>.>>.>....v>..>v>.....>v>>v>..
.v..vv.>>vv>.v>..>>>v.>v....v.>v>...v>.v.v....v.>.>>..vv>>.........vvv>.>...>v.>.>.>>>>.vv>>.>...>>..>v..v..>>>..>v>v>...v...>.>v...>......
..>>>.>v>....vv.>....>.>.v..v>...v..>.>.v>.v.>...v>>v>v.v..v>.v...>vv.v>.>>.>>....>..>>vv..vvv>>v.vv...v.v..v.>>.>v.v.v.>.vv.>....>vvv..v..
....vvv>.v>.v.v>v.v..>....v.v>.v...>>v...>.vvvv.vv.v..>vv..>>...>.v.v..v...>..v.vv>>v.>..>v.v.>>..>.>....>>vvvv>vv....v.vv>v.>..>vv>v>..v>.
...v.>>v...vv>v.>vvv.vv.....>v>>....vv...v>.>>>.vv>.v>v...>.v.>...v>..>>>.>vv.v....v...>>...>vvv>.v.>vv>.v...>>>......>v.v.>>vv.>.>..v.....
.....>v>v.v..>v.v>.v.>..v..>>>vv>...vvv>...v..v.>vv..v>>.v......>....v.vvv...>...v.v>...>...v.v.>v..vvv.v>v>.v.v>...v.>vvv>>>....>>..v...>v
.>.>v>.>...>..v>>>v..v.v.v..>..v.vv..>....>.vv>.>...v.>>>>>....vv.>v.>>..>.vvvv.v..>.v..v..>>..v.v.>..>.v....>v.....>v...>.....>v.>v.v.>...
.>>v.v.>v.>vvv>......>v>>>v..v.vv..>>v>.>...>>.>.....vv..>>.>.....>.v...>v.v>..v........vv..>>vv..vv..v>.v....>>>v.vvv>.>v.....v...v>...v..
v..vv..>>...v.>..v..>.>...v.>>v.>.....>>.>.v...>v>v...>>>>.....>.>>.v>...vv...>v.v.....>>.>..>.>...>....>...vv......v.>>v.vvv>>.>...>>..>>>
.v...>>.>..v..vv>.>>..>.>vvv.v.....>v>.>..vv..>>vvv>..>v.>>..>....v>>>....>>.v..v.v..>>.>vvv.>vv.v.>>.v>.......vvv..vv....>.v>>v.>>>>>.>vv>
.>.>..v...>..vv.>..v...v.>.v>>v.>.v.v>>v..>>>v>>vv.>v>v..>..>...vv.....>>..v..>>>.vvvv..vv..v.>..>>>...>....>v..>..>>..>..>.>.>>..v....>...
>v>.vv..v..v.v>...>>.....>.v.>....v>..>>vvv.>>>.>v.v.>...vvvv.>v...v>.>.>v...>>>>v>..vv>>v..>v....vv....vv>......v....v...v.vv..>vv>>.v>v>v
.>vvv...v>v...v..v>.......v>v>>>..v..v..v.>....>...>>>.v>.v>..v.vv.>v>v..>.v...v...>v.>v..vvv.v.....>.>.>>.>>>>vv.....>v>v....v.....v..v.v.
>>.>.v..v.v>>....vv.>.v.....>...v>v...>v....v>>.v.v>......>..v>.>vv.v..>>>v..v...>...>vv.>..>>.>..>v.>v>.>v>...>>...v.v..v.>v.>..>..vv>.>v.
>>.v>v.vvv.>>....>v..>..v>>>..>v.>....v>...vvv....>.vv....v>....>.vvvv.v.v.>..>v..v.>..vv>..v.>...v>.>>>v>v>v.>..v..v>..vv..>v.v.>.>>..v>v>
...>..vv.>......v>.v..>v...>>.v>.v>v..>>..vv.vv...>>.....v>....v.>.v>>v..>v..>....>.>>.v>.>vv..vv>...v>.>>>..>>>..v.>v.>.....>>..v.>.v..>..
v>..v.v>v..v>>v.....v.>>....v..v..>>..v>..>>.v.v.....>..>>>...v....>vv>..vvv.>>......v..>>>>>........v..>>.>>>.>>>v...v.vv..v.vv.v..>vv..v.
>v..v...v>v.v>vvv...vv.v.v.>......>.>.v.....v>>....>>.v...>vv.>...>..vv>..>...>v.>>...v.v>>v...v..>>v>...>vvv....>v..v..>..>....>.>.v.>>vv.
...>v>>>.v>.>vvvvv..>..>.v....>..vv.>>.>...v.....>.v.>.v..v.>>...>.v.v...>>.v>>..v.>.vv...vv.v.>....>.v>.v.>v.v>.>>...vv>vvv>>>>v.vv...v>v.
.v.>v...>.v.v..v.v.v......>>v..>....>....>>..>.v>v>>.>.>..v.>....>..>>.>...v.v.>>......>v.>>v.vvvvv>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>>v.v.>>..>.>.>....>.v>...>>..vv>.vvv>v..>>>.v.>.vv>>>>.vv>vv.
v>>.vv..>..v...>v>.....>.v..v>..v...vvvv.v...>v>>....>...v.>>.>>....>>...>v...v..>>>v.vv.vv>....v>..vv..vv.>.>>...>..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.vvvv...v>>....>..>.>v>v>..>......vv>.....vvv>>.
.>.>v.>>..>..>.v.v....vv>>>v..>..v>v>v>v>...>>v>>>.vvv...>v>>v..v.vv.>..v>......v>......>>..>.v>>.>>>v>v..v>.vv>v......>>.....>v.v>....vv..
vv>..vvv.v.v.v......>>v...>>.vv....vvvv.>.v>v>.....v.>>v...v..v>..>v..>..>>...>>.v.vv..v>v>.>>.>v..>>v>vv>v>>.>v..v.>.....>...>v.vv.vv.v>..
..>v...v.v.v.>>...>.>>v>.>.v..>.v.>...>...>>v>....v....>>..v>>..>>v>>.>..vv..v>v...v.>.>>.>.v>.>.vv>vvvvv>>.v>.>v>v..v.>v.>...>v>....vvv.vv
v>v..>>v>...v...>v>....>>v..>v..>>.>>.vv.>..v...>>......v..vv.vv..vv.>>>..>.>>v..vv..v....v...v>..v..>.>..>v>>v.>..v..v>.>v.v>..vvv...v>>..
>>v.v>vvv.v...>>.>v..v>....>....v..>>.v>>v>v.v>.........v>v>.v..>.v.>>.>..>....>vvv.>...vv.>>...>.vvv....>.>.v.vv.v>..>..>>>..v..v>>.v.>.v.
.v.v.v.>vv.v..>>vv>v>v>..........>v>.>.>.v..vv..>v>>>v.vv....vv>vv....>>v>.vv>vv..vv..v...>v..v.>>vv.>.v.....vv>v.>.>v>>.>>v...>.>.v.v.v>.v
v.>>vv.>..>..v.vv....>>..>v>v.v..vv.>>>v.vv..>.>>v..v......>>.>>>..>>...>>>>>v>.>>.>>v>.v>>vv.>v...v..v..v.v>...>>>.v>>.v.v..>.>...>>....v.
.>vvv>v>...v>v>..v>>v.>...vvv.v..>>v....v>>vvv..vv>....vv>....vv>v.v.v.>>.v>.....>.>......>.vv.>v...>..>v.v.v>v.vv....v.v....v.>.>>...vvv.>
..>v>>...>.v...>..v>>.vvvv.>v>..>...v.v>.v.vv>>v>vv>.>v.>>v>..v.vv.>v>>.v..>v>>...>v>.vvv..>.v.v.>..>...>>v.v..vv>...vvv.vvv.>>.v.>vv>v>v.v
>..v>.v.>>v>>..v.>>....vvv.v..v.>....>>..v.>>>.vvv.v..v>vv>>....v.....v..>v.v>.>.vvv..>>.>..>.v.v...vvv..>v>...>vvv>.>vvv>.v>v.>>..>.>..vvv

57
src/25.rkt Normal file
View File

@ -0,0 +1,57 @@
#lang racket
(require "../lib.rkt")
(define input (map string->list (problem-input 25)))
(define rows (length input))
(define cols (length (first input)))
(define grid
(for/fold ([grid (hash)])
([i (range rows)]
[row input])
(for/fold ([grid grid])
([j (range cols)]
[col row])
(hash-set grid (cons i j) col))))
(define (grid-ref grid row col)
(hash-ref grid (cons row col)))
(define (grid-set grid row col v)
(hash-set grid (cons row col) v))
(define (move-east grid-old grid-new row col)
(match (grid-ref grid-old row (% (add1 col) cols))
[#\. (let* ([grid-new (grid-set grid-new row col #\.)]
[grid-new (grid-set grid-new row (% (add1 col) cols) #\>)])
grid-new)]
[else grid-new]))
(define (move-south grid-old grid-new row col)
(match (grid-ref grid-old (% (add1 row) rows) col)
[#\. (let* ([grid-new (grid-set grid-new row col #\.)]
[grid-new (grid-set grid-new (% (add1 row) rows) col #\v)])
grid-new)]
[else grid-new]))
(define part1
(time
(let loop ([grid grid]
[steps 1])
(define east-grid
(for/fold ([grid* grid])
([(rc loc) grid]
#:when (char=? loc #\>))
(move-east grid grid* (car rc) (cdr rc))))
(define south-grid
(for/fold ([grid* east-grid])
([(rc loc) east-grid]
#:when (char=? loc #\v))
(move-south east-grid grid* (car rc) (cdr rc))))
(if (equal? grid south-grid)
steps
(loop south-grid (add1 steps))))))
(show-solution part1 #f)