~cdv/aoc-2021

74ded35903347dc95d229d3cd99324206495e668 — Chris Vittal 2 years ago 01cdaf6 main
rs: day 25
2 files changed, 195 insertions(+), 2 deletions(-)

A input/day_25.txt
M rs/src/bin/day25/main.rs
A input/day_25.txt => input/day_25.txt +137 -0
@@ 0,0 1,137 @@
..v>.vv....vv..v..>>.vvv......v.>.>.v>vv>v>..vv.>vv..>.....v..>.>..v.v.v.....>>vv>>>.>..vv.>..vv...>.v.vv.>>.vv>v..>.vv>.v..vvv>v>>v......v
vv.>.>..vvv>.>v.v>..>>v.>.v..>>.....v..vv>vv.v....>>.v..>..>.>>v>>....>>>>.v.v>..v.>....v.>v.v>.>>>.v>vv....>>.>.v.>>vv...v.>>.v.vv>..vv...
v...>...v.>...>..v>..v>.>>vv..>>...>.>.>.....>>...v>..vv.v>>...>.>.>....v>..........v.>vv>..v....v>v....v.v>>>>>..>...>>.vv.v..>v.v.>v..v>.
vv>.....>..vvv..vv.v....>..v>...vv...>v>..vvv.>....v>.>>>.>vv..vv.>..>v....v..>>>>..>>.>v>>..v>>>v.v>.>>>..vvvv..v.v.>.>v.>vv.>v.v...>.v...
>.v....v.>.>.v>..v...>..v>..vv...>..v.>..>>.>..vv>.v.>>..v.....>v.>v.v...>.>v....>....v..vvvv....vv...>>v..v>.vvv.v..>.v..v.>v..v.v..v..>.v
v.vv...>...>v...>...v.>..v....v..>v....>..>.>v>.v.>..>>..v.>....v..v>..>v.v>>>vvv>vv.>...>..>.>..v...>.v...v....>.v..v.v.v..>>.>v.>vv.>vvv.
.v>.v....>..>.v>..>........v.>>.v.>..vv.>...vv>v..v.>>..v.>v..>v.>.vvv.vv.v.vv.>v...>v>v..vvv>.>>>.v.>.v>>..>.>.vv...v>...>..>v.>>.>.>..v.v
.v>...>.......>.v..vvv..>.>.>.vv>>v.vvv>.v.>>v>>...>..>.vv..>>...vv.>....>v>>v.vv.>vv>....>>.>>>v.vvvv>....>>>..v>>.>v...>..v.>...v>>..>vv.
.>>.v>v..v.v..>.v...v>>.>v>..v>v>>.v....vv>>v..v>.v>......vvv.v>..>>>..>.>>>>v..>.v...v>.v..>..>..v...v>v.v........>.vv>..>..>.v.....>...>.
>v.v.>v>..vvv>.v.v..>.v.>..>..>.v..>v.>vv..>.v...v.v.>>.......v>>>>>v.>..v.>v..v.>....>.>.>>>.>..>..v.>.v>vv....v>v..>>...vv....v>..v>vvv..
..v........>v........v>.v.>v......v..v.>v....vv>.v.>>..v..>>vv>.vvv>...>vvv>vvv....v.....vv.v.>.>>.....v.vvv..v....>v>.....v...v...v...>..v
..>..>vvvvv>>>...>.>.v..>>.v>vvvvv.>..v.>.v.>>v.v.>>v...>v>.....v..>.>>>.>v>.v>...>..v....v...>..>v.>v.v>vv..vvv..vv.v.v>>v.>.>>>vvvv.>..>.
..>..>>vv.v>.>....vv..>v..v>>v.v..vv.>.vv..>...vv>>...>..>>v>v>>..>>..v.>.>..v..v.>>>.>v...>vvv.>.>.......vv....>vv>.....>.v>.>.>.v>>....vv
v..>>>..v.....>v....vv>....v>>...>vv>.>.>..>.>.>vv.v..v...vv.>vv..v>.>>...v>vv....>.v.v..v...v..>..v.>...>>vv...v>.vvv.vv...v.>v>..>..>>v..
.>..>v>.>>.v..v>.v...v.....v.>.>.....>..>.vv.>.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...>..vvv>......>v.v...>>v.>>..v.>>..v>>v>.>v.>v.>v.....>>..>vv>v.v.v.v..v.....v.>>vv.v.v>.v...>>.>...>>v.v..vv.v>
....v.v>v..>.>vv>v...>..v>.v>.vv..>v>vv>....v.vv>..vv.v>.vv>..v..>.>..v......v>>..>v.>v.>>..v....>v>..>.vv>.....v.>...vv.>.v....vv>v>.>>v..
>.v..v....v.vvvv>.>.>....vv>>>>.......>.>v......vv.vv.>.>>.v...>..>..>.>....>...vv...>>...>>vv>>.v.>...v>.v>.v>>.>.v.>.>...v.v..vvvvv.>.vv.
.........vv>..>>>v>..vv.v>.v>..v>vv.vvvv...>v.v>>vv>v...>..>.>>v.>v>.v>>>.v>...>.....vv>>.v..vv>>.v.v>.....v..>vv...v>>>v.>..>.v..v.v..>..v
>....>v...>v.v>>.>.vv.>>vvv.....v..v..v..>...v>.v....>v.....>.v..>.....v.>>.>v>.>vv>v>..>.>>....>.vv>v....>v...v.>.v.v>...>.>>>.vv>>v.v.v>.
.vv..>.>....v>..v>>.>v>..>...v..>..>.>v.>.>>.v>v....>.>.>...v.>>>v..vv>>..v.>..v.>.>v..>..v.>.>>v>..>v>....>.v.vv>>.v.>.vvv...vvv>..>v.>.>.
v>.>.>>.v....>..v....vv>.v.>v...>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.>.v..v..vv.v.v...>>...v......vv..>v>.....>.v....>.vvv.>v...>>>v...>.v.>>...>......vv..>vv>.>
..>.v.>..v....>.vvvv.>.>>v..v..v.>...>v..v>..>>v>....vv>.>.vv...v.>v>>>..v.>...>vv>..v.>>.v.>v>..v>vv.........v..>.>.v.v>.v>..>v.>..v>..>.v
>vvv...v>.>.v.....v..v>v.>>.>>v....>v>>>>.v>..v...>>...>..vv.v>.v.v.v..v.....>vv>.>.v>....>vvvv......v.>vvv.v>.v>.....v...>.v.v.....>.v>v.v
>.>..>v.>...v.>.>v.>.>..vv>>.v...vv..v...v>..>.>vv.v>>..>>vv>vv>..>v.vv.v..vv>>v..v....v...>.>v.>v.v>v>.>>.v>>>v>.v.......>v.......>v...>..
.......>..>>>v....>.v>>..vvvv>>>vv....v..>.vvv>>..v.>.>vv..v....v.v.>.v.>.>v..>>.v>v>>.v....v..>...v>.>...>..>v..v...>..v.>.v>>v>v...>>...v
...vv..vv.v.>>..v..>..>>..>vv>.>.v..vv>.>>>>vv>.v>.>>.>>vv..v....v>>v..v>.........>vv.v>>....>>...>.>.>>>v..v..>..>>.>v.>vvv>..>...v>.v>>..
.>.v>.v>.>v.>v.v.>vvv.....v>..>v..v.>.vvv>.v.>.>v>>>...>..>v.v.v.v>vv.>.v..>.>>>vv>v....vvv>..v..vv.vvv...>..v.v>vv..>vv>v>.>>.v.>..>...v..
v.v....v>v>v>>...v>.vv.>vv.>..>>.>.v.....v>>.......>..v..v.>.>..v...v.v..>v..>v.>>.vv.>.>v>v..>..>v..v>>>v....v.v>.>>>.>v.v.>.v...>v..v....
v.....vv..>.>>..>>>..>.v...v>>.>.v..>.>>...v.....>>.>...v.vv..>.>.v.>.v..v>>>..>vv...v....v....v.v.v>.>..vv.>vv....>.>..v.>....>.v>v.v..>.>
.vvvv.>>.>..>>..v>..>v.v.vv>..>>.>vv.vvvv..>>.v.>.>v.>>>>>v>.>v>.>vvv.>>......>v>....>>vvv>....v.>>.v..>...v.>v>...>..>v>v.v..>.vv>>.v.>.>v
v>>>>v..v..v...>....>.vv..>.>.v>........>.v.>>...>...>v..v>.>..vv.>.>.>...v>vvvvv>..v.>vvvv.>.>v>.>...>v>..v>.v.>>v>>.v>>.....>.>..v.v.>..v
>.v.........vvvv>.>.vv...>>>.>...>v.vv>.>>>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>.>.>vv....v.>>..vvv>.vvvv..v>>v.>>.>vv.....>.v.>.v>.>.vvv..>..>..v>.vvvv>>.>....>v....v.>>..>...v>...>vv.>..vv>>.v>.>>.v..
vv.>......>.v>>.....vvvvvv....v.>v...>.....vv>v..>...>>>>.v.>.>.>>.v....v>..v>..vv.>v..vv.>.v...>.>...>v.>v>vv...>>.>......>v>v.v>v.v.>v>v.
......v>.vv>...vv>>..>v.>..>...>v.v..>....v.v...>v.>v>....>>.>v.>.v>.v.>>vv>>vvv>>v.>v>..v..>v.v>vv>...v..v...>>v.>v>....>...vv...>..>v..>.
>.>>v>>v.>.v>.>>>>>.vv...>.v>.>vv.v.>>>..v>v.v..>.vv>.....>......v>.>..>.v..v....>....v..>v..v.v.>.>vv.vv...vv..vv..>>>....vv.>.v.>>>...>..
.v>>>>>>.vv.>v>>v...v.>.>...>>..v..v.v......v.>v....>..>.v.>v>v.>>>>vv....v.vv.>..v>.vv>>.>v..v.>.>>>v.v...vv>..>>>>.vv>.>.>.vv..v>>..>.vv.
>.>.v.v>v>....v.v...v.v....>>...vv.....vv.vv>.>..>.>.v.v>..>.>..>.>>......vvv.vvv.>v.>v...>>..v>v.>.v>v>....>..v...>v...>v......>v...vvv>..
.>.>vv...>.>v>>...v.>>.>>.>.vv...v.>v.>v.vv..>v...v>..>...>>>>>.vv>.v>>.v..>>.>vv>..>...>vvv.>..v>>v>v>v.>.>v......v..>..>...>..>.....>..vv
>..v...v...v.>v>v.>>v...>>....>.>v.v>>>v.>..v>..vvv.>v..v>>>>>...>.>>v>..>v.v.v..vv...vv.>vv>.>>>.vv>..v.v..>.>...v.>..v>>v>....v...>.....>
....vv.>...v.>v.v...>.>.v>.>>>v....>>.>.>.>.v..>.......>.v.>>.v.v..>>v.>>vv..>>>...>.v..v..>.>.>...vv>..v..>vvv.>v.v.v>.>>v.v...v.>v.>>.v..
...>>v>...vv>....>>.>...>.....>....>vv>.vv>.>...>..>v.vv..v>..v.....v...>vv>v>>.....v.v.v..v.v.v>>v>>.>>..v>v>>v>.>v.>.v>.vv.vv..vvv.v.>v>.
.>vv.>>>..>.>....v>.v>v>v...>v..v..>v>>.>>v>...>.vv.vvvv..vv....>>v.>..v....>>.v....v..vv..vv>v>vv..v..v>>.>.......>..>>..>v>...>vv..v>...v
.v.v...>.vv>>....v.v>.vvv.v.>....v.>.>..v>>>.>...v>.v...>.vv.>.>.>...v.>v.>>..v>....v..v>>vvv..v.>v....v.v>v>v.>v...v>v>>...>>v.vv>v..v.v>.
..vv>.>..vv>v..vvvv..>v.v.>v.....>.v>v.>v.v..>.>.v>>....v.vv>.>v.>>......>...v.v......v>....v..>.>..v..v.....>vv>vv......v....v>>.v.v.>v>..
v>>......v.v>v.v>>>>..>>....v>>.v....>..>>.>v.>>.>v>.v.>vv....v>>....v.>...v.....v>>>v.vvvvv.vv.vvv..>v>.vvv.>.>v.>>..>v>.v.v>...>v....v..>
..>>v>..v...vv>...v>>.>.v.>>v...v..v>>v>.>.v>>.>v..>v..>......v.v..v>vv>>>.......vvv...>>vv.vv...v>vv>....v>....>>>vv.vv....v>....v>.v.vv.>
.v>......v.>v...v>.v.v...>..v..>.v..v...v..v.>..v.>...>.>.v>.v>.v>>....v.vv.>>v.>vv.v.vv.>>v>....>>..v...v.>...>>..>....>...v.>v...vvv.>vv.
.vv....>v.v.>v...v..v>.v>v>v.v.v>.>..>>>..v.v.>.>>.>.>>>v..>>vvvv.>v.>>>.>.>........>>>....>vv.>.>>v.>>>....v>>.v>..v..>v.>v...>v.....>.vv.
>vv.v>v.>v..>.vv>....>>...v>..vvvvv.>...vv.v.>..>v.>>......>>v.vv.>..v.>..>.v..v>..>.>v>vv.vv..>v>..v..>vvv..vv.>.>.>>v...>v..>...>.>>>>.vv
.>.vv.v.vv>>.>>>....>>>.....>.>>..>v...v>>.>.>...vvv..>v.>>.v.vv...v..>..>..>>...vv.>v..vv.v....>.>v....>..v......>>>.v.....>v.v......v.>..
.>..>v.>v>>.>>>.vv.>.v>...vv>.>v>v...v>..>v.....>.v..v.vvv>>>.>...v...v..v.>.vvv>..>v.>>>.>>>..>v>.>v..v...............vvv>>vvvv>>..>..v.>.
.vv>>vv>.vv....>>.v.vvvv>.vv...v.v.v...>.>.>v.v>v.>.vv>>.v.v>.>.>>>v.v.>v.v.v>...>..vv>>>vv..v.v.>.v.v.v.>.v>v.v....v>>>..>..v.>v.v..>.>>..
>vv>>.>.>>.v.>v.>.>.v>.v...>.>.v...>.vv..>..v..v>v..v.>.vvv..v.>v>.>>.vv.>.v..>.vv...vv..>..v..>vv>..vv.v...>....>>..>.v..vv.v..>.>>v..>.v.
.v...>v>>>>.......vv.v.v..>..>>..>.>..v>..vv........>.v>v...>.v.>>>.>..>.......>>...>.v......vv.v>..vv.v.v..v..>..>.>v...v.v>.>>.>v....>...
.v...vv>.>..v.>vv...v>v.v>>..>.>>>..v>>.v.v>vv..v.vv>>....v....v..vvv>..v>...v.>vv..vv.>.>.v>>..>>vvv..v.>..>>..>v..v.v..vv>.>>>vvv..v>>.>.
....>.>....>.....v>..>>>.vvvv.>vvvvv.....vv.vv>....>.v>.>vv...>..v.vv>.>.v>.>.>.vv.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.v..>>.>...>...>..v..v.v..v.v...>v.>v..>...v....>...v..v>.vv>vv.>.v>.>....>..vv.
.....vv.vvv.>>>v.>v...>.>...v..>>......vvv.v.v...>>v>.v>.vv...v.>..>.>.vv.>>...v..v>.>.>v..v.v.>.vv.>>.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.vvvv..>..>>.v..>..>>..>..v.>vv.v.vv...
...v.v>>.>v.......v>>....>>.>...>.v.vv.>>.>vv>v......>v>>>>>v>.v>v.v.v.....v>..v.>.>...v.v..>>v.v..v...v.v....v.vv.>.>>.v>..v........v..vv.
.....>>..v>.v>v...v>..v...>>.>...vv.v.vvv>>v.v>...vv..v.......v>vv.>>v...vv>>..v.>.v>>...>>....v..>.vv>vv>..>v>.>>...>>>>......v.v.>v>.....
>...v...>>..v>.>>...>.>.>v>>...v>v.v....vvv>....v>v>.>vv....v>v..v...>....>v..v..v.>v.v>vvvv..v>v.v..v.>v.vvvv>...v.v.v.>..>>.>.vv.v..>>>.v
.v.v>>..vv>..vvv>..>.v>..>vv.v>>.>.v..v>.vvvv.....v.>........vv>v.v.v...vvv..>>>>vvv...v.>>>.>>..>.v.>v>>..v...>..>..>.>>.>>vv>vv.v.v.vv>>>
>...v...v..v.v.>...v.>v.v>..v>...v.....v..>.>>.>v.v..v>>..>.....v..>.v>.>>>...>>..v.>.vvv>...v.....v.>.>.....v..v....>v>.>>.vv.v>v....>>vv.
...>....>>....>.>..v.>.v..vv.>.>vvv.....v>>.v....v...>....>.>.>..v.v>.>....>..vv>.v>..>v.>vv.v..>vv.v>.v....>>vvv...v.>.v.v....v..v...v....
>...v>.v....>..>>v.>..>.>v.>vv...v.v.....v..v..v>.vvv.v>.vv>vv..>vv...vvv....v.>>>..v>.v.>v.v.v.v.>vv>..vv>>...v>v.>>....v.>.v>v.>vv.>.>vv>
>v.>v.>..>..vv.....vv.>v>.>.vv..v.v.v>.>.>v....v.>.>...>>vv...vv.....vv.v>..>...>.>>.>>..vvvvv.>v>.>>...v..v.>.v.v>vv..>>.v.>v>>>v..v..>>v.
..>v.>>>>...v>vv>>...>>.>....>>....>....v>.>...v.>.>>.v.v>v>v.vvvv>v.v>....vv..v.v..v.>...v..>.vvv.>>vvvv.>.>.........>....v..>.v>.vvv.>>.>
..v....v.vv>>..v...>.>>vv.v>v>.>.>v..v>..>v...>..>...>.>..v>.v>>>v>>>.>.>.>.v>...v....v..v.>.v.>.>>v>>v>.>>vv.vv>>>.v.>.>>v>.vvv>>v..>.v.>>
.....>.>.v>...>>>.>..>..>>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..v.vv>.v>.>.>v>>vv>v.v>v.v>>>....>v>>.v..>v.v.v.v..vvv.>.v....>.v.....>>>.>v.........>..>v.v....v..v..vv>>>vv.>...>.>
>>v...>vv.....v>..>v...>.>v...>>.v...>>>.v.v.v.......v>v..>>.>>.>.>>..vv.>..>...>v..v>>>>>v.v>.>.>...>>...>.v>..v.vvvvvvv.v...v.vv>.v...>..
v>>>..v.v..v.vv>>..v>>>...>.v.v>.v.>...v..>vv...vv>.>>.v>....>>..v>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.>vv.>>>>>.v.......>..vv>.>>>>....>.v..>..v.vvvvv>>>v..v>.v.>....v>.>...v>>.>...>v....>..>.>..>.
v>..v...>....v...>>>....v.v>.vv>v>.>.>..>.>vv...>.v..v...v...v..vv..>.v...v.>.>.>>>............>..>...v.....v.>v.v>...v.>.......vv.>......v
.vv>...v>>....>v.>...vvvvv.>vv>..>...v>..>.......v>v.>vv.v.>>>v.>>.......vv>>..>>.....v>.>v..v......>>>..v>v...vv.>........v.>v>.>..vvv.v..
..>.>>>>.vvv.>.vv.v..v>....>.vvvv>..v..vv.>v.....vv>v.....>..>.>.>..v>...vv>>.>v..>>>>v..>.v...vv.vvv.>..v>>v.vv...>>.........vv>.vv.v....v
v....>>v...>v.v..v...v.v.>..v.....>v....>>v.v..v..v.v>.>v>>>..vv>>..>..v....>.>.v>.v>...>vv>v.....>...vvv>.>.v...v>vv.>...v..v...>vv.>v.>.>
....v...>>.v>>>.>v..v.>.>v..v..>.>>..v.v.vvv.>v>.>vvv...>v>>.>.v.>.vv...>...>..>>>.>.v..v..>.vv.v.>>>.>..>vv>.....>>.v>.....>..>v...>vv>>..
>.>.>.v>.v.v..v>>v.vvv..v>..>.>v..>.>>....v..v>...>v.>v.vv.vv....v>v.>v.vv..>..>v.>vv..>v...>>>.v.v..v>>.>v.v....v.........>.>.vv.v...v>>.>
vv..>vvv.vvv.>.>vvv>.>v>>vv.>.>.>.v>v>>>.>.v.>>..>.>.v.......>.v.v..>....>vv.vvv...v>..v..>v>vv.v>>>..>v...v..v.v.v>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.vv..v.>v.>vvv>>......v...>.>.vvvvv>.>..vv>vvv.
.....>>>>.>.vv.>>..v.>>...v..>.v..v>...v..>.>>>v>>v>v...>>...>.>..v..v>.>...vv.>....>>>v..v>.vv>...>>..v>.v.v....v>..>......v.>.>....v..vv.
.....v.v>>..v..>..v..>v...v..>v.v..v...vv.v..v.vvv.>......v>.>>v.v.vv...v...>v>.>>.v.v.>.>.>..>.>>.v......vv>>.v...>>>>>v.>v>>>...>.v.>.v..
v>......v.>....>>vvv.v.......vv..>>>>.v...v>v>>..vv..vv.v.v.>vv>.v.v.....>vv.v...v.v.....>>>v>....v...>...>>>...>.v..>vvv..v>v>.vv.>..v.>.v
v.>>..vv.vv>.>v.vv>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>vv
>.v>.>......>>.........>>..>>>..v..>.v...v.>.....v...v.>>>>.....vv>.>.vv.>vv..>v.>..vv.>.v.>v...v.>....>>vvv>..v>v..>.v>.>...>...vv>......>
>>>...vvvv>.>.>..>.....>v.....vvv.v>...v>vv.>v.>v>>.....>>.vv.v>>.v..>.>.v......>..>.>>..>...>...vv>>>>.v>>>...>.v>>.....vvv>>....v.>...>..
>...>v.v>.vv.>v.>.>>.>v..>.>.>..>....>v.v...>........v>>....>>>>.>.vv...v.>>.>>>>v..>>>v.v.v>v.>vv>v..v...>..vvvv.>v...>>..>>.>..v..v>>.>v>
..v.v..>v....>.>...>...>>.>.v....>.v.v>v...v.vv>..>..>v.v..>.>vv..>..>v...>v>v>vvv.vvv.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...>vv.>>>>....v..v.v.vv>...vv>v>.....>>>>...v>>.v>vvv>v>v...>.
v.v>......>....>..vv>vv....>...v.>...v>....>v....>>....v..v.>vv>.>..v>.>v>vv>>vv>v.>v..v.v.v.>.>..v>..v>v...v...>.>v>..v.>....>......vv..>v
>>v>.>v.>..>vvv..v.>.....>v>.vv>v>>>.>>..>.v.>..v.>...vv.v.vv>vv>v.v....v.v>vv..v>.>v...>>>.>>vv>v.>..v>vvv.v.>v..v.v>vv.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.vv.v>.
>v>>v.>v.>..v.......>v.vvvvv>.v......>>..>>.>.>.>v.v.>>v.v>vv.v>>>.>v....v...v..vv>.v..v>v>>..>..v...>>>>....v.>v..>.>.v.>.v>..>.v.vv..vv.v
.>>.>>>vv.v..>>.vv>>>>..>>..>>.vv.>>v..vvv..vvv...v>v...>.....>....>>...v>..v...>>..vv>.>>v>.v..vv.vvv....>v..vv.....v.>...>>.>..v>.>..vv.v
>>.vv.v..v....>v...>v>.v>>....v....v.v...>.v>.v>.vvvv.>...v..v>v.vv.>v.vv..>....>...v>...>.>.>.v>>>>>..v.v..v.>>>v.>>.>..>...v.>>.v..>>.v>.
v>v>..>.>.....v.v>>..>vv.>>v..>>...>v..vv.v>>...vvvv>.v.>>....>v..v...v>....>.v>v.>>..>.>......vv>>v...>.....>vv>v.v>..>vv>>.....>v..v..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.>.....v.>>v>.v>>.>.>>....v.>.....v.>>.....v.v.vvvv..v...v.vvv....>v>..>v....v>.>>v>>v.>>.v>....>vvv.v>>v.v.>>.>v.>.....v.vvv..
.vv.v.v>v>vv>.vv>v>....>.v...>.v>v>v>>vv>v>>.v>.v>v>>>vv..v.>v...v..>..>>v..vvv>>.>>>>.>...v>>.>.v.>>..>vvv>....>>>>...v.v.>.v>v>..>>>>>>.>
.>>......>...v>>v.....>>v...>.v.v.v..>vv.>.>..>.>>.vv>>>.v.v.vv..>.....>>>>>v.>>>>v.vv.>>.>...vv..v....vv>v...vv...v>.vv...vv.v.vv..v>>>v>>
>>vv..>>>v.>>..v.......>v.v.>....vv>.vv..>>..vvv>.>vv>.>>..v.....>>vv..>v..v>v>vv...>.>vv.v.v>>..>>.v..vv>>.>...v...>v.>v>.v..>>v>v.vvv>v.v
..>v>v..>.>>>...>..vv..>..v...........v..>v>...>>v>.>.>vv.>>>..>...vv>vv.v.v.>.v>.>v.>vv..v.v....v>>...v.v.>..>>.>...v..>.v...vv>.>v..>.>..
.v..>>..>..>.v>>..>>.>vv....>vvv..>....>.>..v.>.....v....v...>>>..>>v..v..>v...vvvv..>vv..>.vvvvv.....>v....>.v..>...v....>>..>..v.>vvv>...
...v>>>.>>..>...>.>>..v>.....>..v>>v...v.>>.vv>v..>.>>>>>.>v>.>>....vv>.>v.>.v>>.v..v.>......v>.v>..>>..>...>v.>.>>vv...v>>.>>.v....>>v.>v.
.v>v......v>.>..v>.>..v.>..vv.>vv>>....vv.vv.>.>>..>>.>....>...v..>.>>>......>.v...v>.>.>....>..>vv>.v.vvv>.v..vv>.>..>>..v>.>.v.v>.vvvvv>v
..v>..>...>>v>.vvvvv.v>vv..>v>vvv.>>....v.>>.>.>.v>.>>....>...>>>v>>>vvv..v...vv>.vv>.v.vvv.>v..v>..v.vv>.v..>v.>v...>>v..>v>.vv.vv.>v.>.v>
>.>..>..>..>v.v.>v>...>..>..>v>v..v>.>.>v.v>.v>vv>...vv.v.>>>...>>..>>.>>.>.>>.>...v..>...v.v..v...>>..v>vv......>...>...>vv.v..v.>.vv....>
...>>>v>v..v>>v>>.v..v>v>.>.....v.>.>>vv>v>.v.>>.vv.v.>.vv>v.>>....>>.>>.>vv..v.....vvv>>v.>>.v...>.>>....v.v..v.v.>.v>vv.>.v.>.v.>.>>...>.
.vv>>>.....>..>v.>v..vv.>....v>v>v>..v>..>>v>v.>...>vvv...v>>.v>vv..v..>v>...v.>>.vv..>..v>>>.>v..>vv...>v.....>...>>.vvvvv.>>.v....v.v>>v.
..v...>vvv.vv....>.....v.vv.....v...>.v.>>>.>v.vv>.>>.>v...>..>.>v>v.vv>..v>>v>>>.vv>v.vvv>...>v.>vvvv..>.v.>v.>v.>......>........>>.v..v>v
.....v..>.v.v>v.>..>v...>...>.>...v.>..>..>..>.vv>..vv.>>vvv.v.>vvvv....>v...>v.v.....v>>.v.>>>>v..>v..v.v>>.>...>>.>..v..>>.v...>.v..v>v>.
.>...vv>..v>v..v....>.>.>.....>..>..v>.....v.....>v>..v>...>>...v>.....v..vv..v......v.>.>>v.v>>>vv.>>.>v.v..v....v....v...v>..v>..>.vv>>..
.>..>>>v..v.......v>>..v..v>>vv>>.>.>>>v...v.>v>...v..>v..v.>.>..v>>>.v.v.>>..v>.v.>.>>>v>.vv>.>>...v>v.>>..>v.vv>.v.v..vv>...v.>..>>>..>.>
>.v>v.v.>..v.vv>..vv..>v.v>.v>v>vv.v.vvv.vv...v......v.>v..vv..>>.v>.v>..>.v.>v>v.>v.....>v>>v.>.>...v.v>>..v>v>v.vv.v..v>..>..>...>v...>..
..v>v.vv.v.........vv.v>.>v>vvv..v>v.v..>...v.>.>>v.>...>.vvv...>.vvv>>>.v>....v.vv..>>..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>.vvv....v.>>.>.>.>.v..>v.>v.v.v>v>..>...>.>vv.....>>>>v.....>
>vv.>...>>..v>v..v..v>.>.>>.v>>v>...v.....>vvv..>...v>v>.>.>.>..v..>vv.>.v.>vvv.>......>.v...vv.vv>..>v....vv>>.>v>>vvvv.>...>>..v..vvvv>v>
vvv>v.vv.>>.....v.>...>.>..vv.v.>v.vv>.>vv........v>v>>..vvv>v>...>>.v>..v.>>....>......>>.v>>vvv......>>>v.>>>>>.>.v.......vv.v..>...vvv>v
.>vvv>>vvv.vv.vvv..vv>.vv..v>...>.v.>...>.>......>>...v.......>vv>.>..v..v>..vv....v.v>.v.v.v...>>.>vvv.v.>.>.v.>vv..>..v>>..>..v..v..>..>v
>...>v.v..v>.>.>..v.>..v>.v.v...v..>>.>>v..v>.>....v.....vvv..v.>.>..>v>..>>..v>vvvvv.v.>>....v...v.v>>>vv>..>>.v>.......>>...v....v.>v.v..
.vv.vv.>>......>>......v.v>v....>v.vv>..>.>.v>..>.v>.>.v.v>>v.v.>.>.vv.v..>>v>.>..v>>...>vv..v.>>v......>...v.vvv>..>..vv.v...v....>....vv.
>.>..v>>>>.v>....>>.>...v.>.>vv.....>>.v....v..>v>.>.>..>>>vv>>.vv..vv.>>v......v...v..v...v..>vv.v.v.>.v.>>.>.>..v>.v>...>.>.>.v.>v.>v.v>>
.>.>....>>..v.v..v..>....>>...v..vvv>....>v.>>.>vv..v>.>.>..>>..>.v.v..>v>..>..>>>>>...>vvv..>.v....>.......>>v.......>>>.v....v>.....vvv.v
.v>>>>...>...>.v.v.v.vvv>vvv>..>>.v...v.vv.>>v>vvv>>.v.v.v>v.>v>v.>>v..>.>>v..vv.vv.>....>..v..v..v>vv.v>vv>.v.>v.v.v>..>v.v>..>..>>v..vv..
>.......v>v>vv..>>>.v.......v>>..v.>......v..vv>..>>v>v...>.>v.>..v>>.>.v>.>.>>...v..v..>.v.vv>v.......v>..>.>>>.v....v..v.>.>>vvv..vv>v>.>
..>..>>.vv....vv>....>>...>>..>>>>.>v>>...vv..>>>v>..vv.....v.v...v>vv.>v.v...>>>.>vv>..v..>.v..vv.v>.>..v.>>..>.>..v...v....v>.>v.....v..>
>v...v.>>vvv>..>>.vv>>....v>>...v>..>v>..vv.....v..vv>.>.>...>v.v>.>>.v.vvv.v...>.>..vv.vv.>vv.v.>>.....>vv...>.>>>>>v.v.v...v.v..>...vv..>
..>.v.>v.v.>...v>...vvvv.v.vv..v...>.>...>.>..v>....>.vv>>v.....>.>>.v...>>v.....v..v>.v.vv>.>vv>>vv.>...>v..v.v>v>.>v...vv.>...>.v...v>>..
v.v>.v...v.>.>.>.>.>..>.v.v>.v..vv>vv>.>v..>.v>.vv.>>v>v>.....v..v.v.>...v>...>....>..v..v>...vv..v>>..>..>.>v>...v...>..>.vv...v>vv...vv..
>v>.v>.vv.>.vv..>.>>...v.v.>.v>..>v..>.>v.v>.vv.v.....vvv...>..v>v.>vv..>vvv.>v...v.v....>>.vvvv.v.v>>>vv>>v.>.v.vv>v.>.v>v.....>>.>.vvv.>>
.>v..v>..v..v>v.v.>>..>.>v..v.>.>..>>.>>>>v>...v>......>>vv...vv.>v>.>.>vvv>>..v...>>..>...v.v.v>>>..>vv>.>.>v>>...>v.v>>...v>v......vv>...
..v..vvv.v..v.v..vv>.>...v>vv.>>>.vvvv...v.v>v.>v.>..>vv>>>.....v..v.v.v>...>>>.>....v.vv>v>v..>v>........>..>....>>..v>v...>>v.>.>v>>.>>.>

M rs/src/bin/day25/main.rs => rs/src/bin/day25/main.rs +58 -2
@@ 1,7 1,63 @@
use aoc2021::*;

fn solve(_input: String) -> Result<(impl Display, impl Display)> {
    Ok((NYI, NYI))
fn step(field: &Vec<Vec<u8>>) -> Vec<Vec<u8>> {
    let rows = field.len();
    let cols = field[0].len();

    let mut new = field.clone();

    for r in 0..rows {
        for c in 0..cols {
            if field[r][c] != b'>' {
                continue;
            }

            let cn = (c + 1) % cols;
            if field[r][cn] == b'.' {
                new[r][c] = b'.';
                new[r][cn] = b'>';
            }
        }
    }

    let mut field = new.clone();

    for r in 0..rows {
        let rn = (r + 1) % rows;
        for c in 0..cols {
            if new[r][c] != b'v' {
                continue;
            }

            if new[rn][c] == b'.' {
                field[r][c] = b'.';
                field[rn][c] = b'v';
            }
        }
    }

    field
}

fn solve(input: String) -> Result<(impl Display, impl Display)> {
    let mut field: Vec<Vec<u8>> = input
        .lines()
        .map(|line| line.as_bytes().to_owned())
        .collect::<Vec<_>>();

    let mut ret = 0;
    for i in 1.. {
        let prev = field.clone();
        let next = step(&prev);
        if next == prev {
            ret = i;
            break;
        } else {
            field = next;
        }
    }

    Ok((ret, "Merry Christmas!"))
}

fn main() -> Result<()> {