From 4984ad480105dec3bb3b5c4c2245569fab9dfc5a Mon Sep 17 00:00:00 2001 From: Andrew Glaze Date: Wed, 13 Dec 2023 11:35:57 -0500 Subject: [PATCH] day10 part1 --- day10/Cargo.lock | 77 +++++++++++++++++++++++++ day10/Cargo.toml | 10 ++++ day10/input.txt | 140 ++++++++++++++++++++++++++++++++++++++++++++++ day10/src/main.rs | 114 +++++++++++++++++++++++++++++++++++++ 4 files changed, 341 insertions(+) create mode 100644 day10/Cargo.lock create mode 100644 day10/Cargo.toml create mode 100644 day10/input.txt create mode 100644 day10/src/main.rs diff --git a/day10/Cargo.lock b/day10/Cargo.lock new file mode 100644 index 0000000..f5438c5 --- /dev/null +++ b/day10/Cargo.lock @@ -0,0 +1,77 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day10" +version = "0.1.0" +dependencies = [ + "strum", + "strum_macros", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/day10/Cargo.toml b/day10/Cargo.toml new file mode 100644 index 0000000..d7883d0 --- /dev/null +++ b/day10/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "day10" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +strum = "0.25.0" +strum_macros = "0.25" diff --git a/day10/input.txt b/day10/input.txt new file mode 100644 index 0000000..cb0b180 --- /dev/null +++ b/day10/input.txt @@ -0,0 +1,140 @@ +-J.|..|7F-J7.J7F7.-77LJ-FL-F77F77F7|F-FLF7.F.FL7F-J.|.FF7-|-F7F7F7.FF-F7LL7FF-J7.----77-FF-..JF7.L-.FF|-F7--|7F77L7FF77F77.FL-7-L.FL7.FF-7.. +|-JF7.J7F.LL7F7LL-7F-L7|||.-J7.L-J7.J.L|.|7L-L-|7JFFF-F77JLF|LJ|||.LFJLJ7LL-JL-|77|.FJF7LJJ-7|FF.|.F.|||LF-7|FJL|||||F-LJ|7JF|JJF7----JJ.L7- +|F|-L7L-7JLL-|J7||-|7LLJJ.7..J7F77J.F77-7LF77L7JF-L.|||L77LLL-7LJ|7||77FF7JFF.|.FJ-|L-7L7J|FJJF---7|.FLJ-||L-L7.|FL7JJ|L7|7--FJ.-J7FJFJ.FJ.. +|7|F7J.LL7F7FJ-LJL.-|||7FF|-FJ.F|F--7.|.|LF77F|.|7FJ.LL7L7-LLFJF-J7-F7|L.--F7F|.7--|--|F--F|J|LL|LFJ77||FJ-|-||7L-|JL.7JLL7J.|-7L-JJ7J.FFJ-| +LJ||L.L.LJL-L|||.||JFJLL7-F-J---|J||7.F|J.||LJJFLJF|-LL|FJ.LLL7|J7|.||77|77||7LFJ|LL|-JJ|-7L-J7||7|F|.-J|.FF7LJ-.F77|F-F--7..|LF-7JFF777|-L. +L7L-.FJ.--F-|JFL7|7-L||.J7|FJ.|||.|L77F|-FJL7JF-.|FF7JFJL7J7JFJ|7F-7||J-LF-JL777F|.-J7-L--JL|JF-LF7-77J.|-F--7J-J7|7L7J||7.|F7FF.J--JJL7|.|| +LJJFL-7-L-J-L.L.7|F-F77L.FJJFFF7FF|L||LLLL-7|F|7F-7|L-JF-J.FFL7L7L7LJ|-7FL7F7L-77-J.||.L|7L.|.LJ.||JF---7.|..|J||7LL-J7F--J.|7J-J.F||L-JJ-|7 +F|J-LJ-7FLL-JF|7LFJF-77|7JF7FFJL7F7LF7|F|.FJL77-L7|L7F-J-F7LF7L7L7|F-JF-7FLJ|F-J|J|FJJL-JJ7.FJLFF|L7|F-7|-J7.L7-L7J7L-7J|J--J.||.-|--F..J..7 +FF--.L7J7F.FF7|F||LF-LLLJ-FFF77.FJ|7.J-FL-L-7L77L|L-J|F7FJL7||J|FJ||F7|FJ-F-JL-7J.FFJ7||J-F-77FF7L7LJL7LJ.L7--|.LJF-JLF....FLF7J..|JLJJ7LF-- +7J-...L.-L-LF7-FJ7FL-7.L-77L||JF|FJ-JJFF7.FL|FJF7L--7||LJF-J||FJ|FJ||||||.L-7F-J|L-JF-77F-L7L--J|F|F-7|F7-L77FL|7F7J.LJLJ7.F.LJFLFL7..L---|| +...L--7||FJFJJLL|L|LJ-F-7.F-JL7FJL77|FFJL-7FJL7|L---JLJF-JF-J||FJL7||LJ|--FFJL7F7.FL|-FJLLLL---7L7||7LJ||77F7J.--7-77.-JLL7FFJF7||.L.F|.|-FJ +FFJJ7F-JJL-J7LFLJ.|7|J|F|FL-7FJL-7L--7L--7|L7FJL7F7F-7FJF7L-7LJL7FJLJF-J-F7L-7|||77-F77J7FFJF7FJFJ||-F7||F7||||7FFJLL7|.|-7JL77L-7J||7|FF-JJ +FFJ.LLJ..77.7-J..|77FF-7|F77||FF7|F--J|F7|L-J|F7LJLJFJL-J|F7L-7FJL7F-J7F-JL-7|LJL7-F||F-|-JF|LJFJFJ|FJLJLJ|||F-7J|7LF77-J7|L-F7|F|FJ|F7L.-7. +F7F-7-FJFF7.|.L|-LF7JL7|FJL-J|FJLJL-7F7||L7F7|||F7F7L--7FJ||F7||F-JL--7L-7F-J|F--JF7|L7JLLF-JF7L7L7LJF----J|||FJ-|7LF7JJF7J|FJL7-|J-|||77-7. +--|L--7-FFJ-|-.F7L|LF7||L---7|L-7F--J|||L7LJ|LJ||LJ|JF7||7|||||||F----JF7||F-J||F7|||FJ77LL7FJL7L7L-7|F7F7L||||F7F7FJL7.F.FFJF-J.L.F-7J7|FLJ +L7JLLL.F.|-7|J7||-F7|LJL7F--J|F7||-F7||L7L7FJF7LJF7L-JLJL-J|||||||FF7F7|||LJF7|FJLJ||L-7F7.LJF7L7L7FJLJ||L7|LJ||||||F-JFLF7|FJ7|-7|7F-7F--LJ +|J|.|-7.7|.-F-7||.||L-7FJL--7||LJL7|||L7L7|L-JL7FJL-7F--7F-J|LJ||L-J||||||F7|||L7F-J|F-J||-F7|L7|FJL7F-J|FJ|F-J|||LJL-7FF|||L--7FLJF7|FF-7.7 +F7-LFFJ|L77|L7LJL-J|F7|L-7F7||L7F-J||L7|FJL--7FJ|F--J|F-JL7FJF-J|F7FJ|LJLJ|LJLJFJ|F-J|F-JL7||L7|||F-JL7FJ|J||F7|||F---J-FJ||F--J7JFJL77|FL7| +||JL|L-7JJFF.L7F7F7LJ|L-7||LJL-JL7FJ|.|||F---JL-JL-7FJL7F7LJFJF-J|LJFJF--7|F-7LL7||F-JL--7||L-J|||L-7FJ|FJFJLJ||||L7F7.FJFJ||F7F7F|F-JL|-FLJ +-.FFL7F|.F|J.LLJLJ|F-JF-J|L----7FJL7L-JLJL7F7F7FF7|LJLLLJL-7|LL-7L7JL7L-7LJ|FJF7|||L7F7F7||L--7|||F7||7|L7L7F7||||FJ|L7L7|FJ|||||FJL7JJJLJF| +LLFJ-J-L--JF7.LF-7||F7L-7L7|F7FJ|F7L---7F-J|LJL7|L7|F77F7F-JL7JFJFJF-JF-JF7||F|||||FJ||||||F7FJ||LJ||L7L7L7||LJ||||FJFJFJ||FJ|||||F-J..FFJ|- +.L--7JFJ7LLJLJ7L7LJLJ|F7|FJFJ|L7LJ|F7F-JL-7|F-7|L7|FJ|FJ|L7F7L-JFJJL-7|F-JLJ|FJLJLJL7||||||||L7|L-7||FJFJFJ|L7FJ|||L7L7L7|||FJLJLJL--77|L-J| +LF77J|7LJ-FLFJFLL---7LJLJ|FJFJ-|F-J||L-7F-J|L7LJJ||L7|L7L7|||F-7L7FF7|||F---JL--7F--J|LJ||LJ|7||F7|||L7|FJ.|FJL7||L7L7L-JLJLJF-7F7F--J-777|7 +LL|F-77-LF|JLJFF----JF--7|L7|F7||-FJ|F7||F7|FJF7FJ|FJL-JFJLJLJ7L7L7|LJLJL7FF7F7FJL--7L-7|L-7L7|||||||FJ|L-7|L7FJ|L7L7|F------J7|||L7JL--JFFJ +.||JJL7---|-J-|L-----JF-JL-JLJLJL7L7||||||LJL7||L7|L---7L7F----7L7LJF7F--JFJ|||L-7F-JF-JL-7|FJ|LJ||LJL-JF7LJFJL7|FJFJ|L-------7LJ|FJ|..J.JJ| +FF|7FJJ|FL|-JLFF7F--7-L---------7L7|||LJ||F--J||FJ|F-7FJFJL---7|F|F7|LJF77L7LJ|-FJ|F7L---7LJL-JF-JL-7F--JL--JF7||L7|FJF7F7F7F-JF7|L--7.|FL|L +-L.FL.---7|..|FJLJF7L------7F7F-JFJ||L-7|||F7-|||FJ|FJL7L---7FJL7||LJF7|L7-L-7L7L7||L-7F7L--7F-JF7F-JL-----7FJLJL7|LJFJLJ|||L7|||L---J-F--|J +|.F|.7|||LJ-7FL---J|F-----7LJLJF7L7|L--J||LJ|FJ||||||JFJF---J|F7||L7FJ|L7L7F7|FJFJ||F-J||LF-JL7FJ|L-7F----7|L--7FJ|F-JF-7LJL7L-JL-7|||L||.J7 +|-|J7L-F|JLLF7F--7FJ|LF7F-JF---J|FJL--7FJ|F-JL7|||FJ|FJFJF-7|LJ|LJFJ|FJFJFJ|LJL7L7LJL7FJL7L-7FJL7|-FJL---7LJFF7|L7|L--JFJ7F7|F-7F7L7FF7JLFF7 +F---7F|LJ-FF||L7FJL7|FJ||F-JF---JL-7F7|L-JL7F7||||L7LJFJ|L7|F-7L7FJL||FJFJ|L7F7L-JF--J|F-JF-JL7FJL7L7F---JFF-J||FJ|F---JF-J|LJLLJL7L-77|LLLL +.F|-|-F.-7-FJL7||F7LJL7|LJF7L-----7||||F7F-J|||LJL7L-7L7F7|||FJFJ|F7||L7|F-7LJ|F7FJ-F7|L-7L7F-JL7FJFJL7F77FJF7||L7|L--77L-7|-F7F7-L--JJL.F|J +FL.FLJL-LL.L-7LJLJL---JL7FJ|F----7|LJ|||LJF-J||F--JF-JFJ|||||L7L7LJ|||FJLJFJF7LJ|L-7|||F-JFJ|F7FJL7L7FJ|L7L-J|||FJ|F--JF7FJL7|||L---7-F.FFJ. +FJ.7|-.|L|.|.L--7F-----7LJFJL---7|L-7LJ|F7L-7|||F7FL-7L7||||L7|FJF-J||L7F-JF||F7|F-J||||F7L7|||L-7|FJL7|FJF7.|LJL-JL-7FJLJF7LJLJF7F7|--77|L7 +|-FJ77FJ7|FF7F7-LJ7F---JF7L7F7F7|L77L7FJ||F-J||||L7F-JFJ|||L7||L7|F7||FJL7F7||||||F7|LJ|||FJ|||F7|LJF-J|L7||FJF7F7F-7LJF7FJL7F7FJ||LJJ--J|7| +JL|.FJ.LLFFJLJ|.F7FJF---JL7|||||L7|F7||J||L-7||||FJL7FJ7|||FJ||F||||||L7FJ|||||||||||F-J||L7|||||L-7|F7L7||||FJLJLJFL7FJLJF7LJLJF||JLJ-L7J-L +|.L-|LFL||L--7L-JLJFJF----JLJLJL-JLJ||L7||F7|||||L7FJ|F7||||FJ|FJ|||||FJL7|||||||LJ|||F-J|FJ|||||F7||||FJLJLJ||F----7|L---JL----7LJ7F.F7...| +JFF.J---F|JLL|F7F-7|7L------7F7F7F-7|L7||||||||||FJ|F||LJ||LJFJL7|||||L-7||LJ||||F-J||L7FJL7||||||LJ||||F---7L-JF---JL7F---7F7F-JJ7L|-J7---7 +LLFJ.L|JL|J.LLJLJFJ|F-------J|||||FJ|FJLJLJ||||||L7|FJL-7|L7FJF7|||||L7FJ|L7FJ|LJL7FJL-JL-7||||||L-7||||L--7L---JF7F7.|L--7||LJ||J|-7FLL.J7| +|F|J7LJ..J--|F---JFJL7F7F7F-7|LJLJL7|L---7FJ|||LJ|LJL7F7|L7|L7|||||LJF||FJFJL7|F--JL--7F--J|||||L7FJ||LJ|F7L--7F-JLJL7L-7FJ|L-7J7-F-L-JL7.|- +JJ.|L--7777LL|F7F7|F-J|||LJFJ|F----JL7F-7|L7||L-7F---J|LJFJL7||LJ|L--7||L7|F7LJL7F-7F7|L7F7|LJ||7|L7LJF--JL--7LJF----JF7LJJL--J|..F77JFLL7L7 +LF-77-7J-L--LLJLJLJL--JLJF7L-JL--7F77LJ.|L7LJ|F7||F--7L-7L7FJLJF7|F7FJLJFJ||L---JL7||||FJ||L7FJL7|FJF7L-----7L-7L-----J|F------7-FJ|.FJ.L|LL +FL7|--|LJ.L7.L|F7F7JF7F7FJL--77F7LJL---7L7L7FJ|||LJF7|F-J||L-7FJLJ||L--7|FJ|F---7FJLJ|||FJ|FJL-7|||FJL-7F---JF7L--7F---JL7F--7FJFJFJ.|.7-J.J +7.F.|.J---FL-JF||||FJ|||L--7FJFJ|F7F---J|L7|L7|LJF-JLJL--7|F-JL7F7|L-7FJLJFJ|F-7|L-7FJ|LJ7|L7F-J|||L--7|L----JL7F7LJF7LLFJL-7LJ.|FJJ7J-J.J7| +|-L|JFJJ7.7-|F-J|||L7||L---J|.L7||LJF----7LJ-||F-JF-7F7F-JLJF--J||L-7|L--7L7|L7LJF-JL7L7.FJFJ|F-JLJF-7||7F7F7F7LJL-7|L7FJF--JLF-J|FL|---7.|7 +-7LLLJJ-77|.FL-7|||J||L----7|F7||L--JF7F-JF7FJ|L7FJFJ||L---7|F-7|L7FJL7F-J.LJF|F7L--7L7L7|FJFJ|F--7L7LJL-JLJLJ|F-7FJ|FJ|FJF7JFL-7|F7JFJL-.L7 +L|-.F.L7LLJJ.LFJLJL-JL-----JLJLJL7JF-JLJF-J|L7L7LJ|L7||F7F-JLJ||L7||F-JL--7F--J||F--J||FJLJ7L-JL-7|FJF-------7|L7|L-JL-JL7|L7JF7|LJ|L||FJ7F| +FJ|.F----L|L--L------7F--7F7F---7L-J|F7FJF7||L7L-7F-J||||L-7FF7L7|||L-7F--JL--7||L--7FJL--7F7F---JLJFJF------J|FJ|F--7F-7LJFJFJLJF7L-7F7|LL| +|LL-7JJLF7-LJF7|F----J|F7LJLJF--JF---JLJFJLJF7L7FJ|F7||||F7L-JL7|||L-7|L-7.F--J||F7FJ|F--7||LJF-----J7L------7LJFJ|F7|L7|F7L-JF--JL--J-J|.|| +|.L-LJF.|.L|-||FJF7F--J||F7|FJF-7|F-----JF7F|L-J|.||LJ||LJL7F7FJ||L7FJ|F-JFJF-7||||L7|L-7||L7FJF-----7LF---7FJF7L7LJ||FJ|||F-7L----7.LJ-7-FL +|.L|J.FJ|FF-FJ|L7|LJF7FJ||L-JFJ|LJL------JL7L7F7|FJL-7LJ|F-J||L7LJFJ|FJL7LL7|FJ||||FJ|F7|||FLJFL---7FJFJF-7|L7||-L--JLJL||LJ-|F----J7FL--7J| +--FF.JJL|7F7|FJJLJLFJLJFJL--7|JF-----7F7F7FJLLJLJ|F-7L7F-JF7||FJFFJFJL7FJF-J|L7|||||L||LJ|L7F-7F-7FJL7L7|FJ|FJ|L------7FJL--7|L-7F---7.FF--7 +|-7.F7|LJ-|LJ|-F7F-JF-7L----J|FJF7F-7LJ||LJF----7|L7|FJ|F7||||L-7L7L-7|L7|F-JFJ|||||FJL-7L-JL7|L7|L-7L7LJL7LJFJF-7F--7||F-7FJ|F7LJF7FJ--|J-. +|FLLJ7L7|||F7L-J|L-7L7L7F--7FJ|FJ||FJF7LJF-JF---JL7|||L||||LJ|F-JFJF7|L7|LJF-JFJ|||||F7FJLF--JL-JL-7L7|F--JF7L7L7|L-7||||J|L7LJ|F-J|L7.|.||. +LL7.L7-F7-LJL--7|F7L7L7||F7||FJ|LLJL-JL-7|F-JF-7F-J||L7||||F-JL-7|FJLJFJ|F-JF7|FJ||||||L-7L-------7L-J|L---JL-JFJL--JLJ||FJFJF-JL-7L-J--JLLF +77LF-7|LJ.|LLF-JLJ|JL-JLJ|LJ|L7|F-------J||F-JFJL--J|FJ||||L-7F7|LJF7JL7|L7FJLJL7|LJ||L7FJF------7L--7|F---7F-7L---7F77LJ|FJ|L-7F-JF77-J..L| +LJJ.-J7JFLJJFJF7F7L7F7F-7|F7|JLJL--------JLJF-J-FF-7|L7LJLJJFJ||L--JL-7LJL|L--7FJ|F-JL7LJ-L-----7L---JLJF-7|L7L7F-7LJL7F7LJF---JL--JL777F7.| +LL.FJLF.|||-L-JLJL7LJ|L7|LJLJF7F7F7F7F------JF-7FJFJ|FJF7-F-JFJL7F-7F7L7F-JF7FJL7|L---JF-7F-7F--JF7F7F-7|FJL-JFJL7|F7FJ|L-7L-7F7F7F-7|-LFL7| +.LL-.FJFLF---7JF7FJF7L-J|F-7FJLJLJLJ||F--7F7F|FJ|FJ-|L-JL7L-7|F-J|JLJL7|L7FJ||LFJ|F---7L7|L7|L-7FJ|||L7LJL--7-L7FJLJ|L-JF-JF7LJ||LJLLJJ.|-|J +LF|J.J.|LL--7|FJLJFJL--7|L7|L----7F7LJ|F-J|L7|L-JL-7L----JJ||||F-J|LLJLJF|L7LJ-|FJL7F7L-JL-JL--J|FJ|L7|F----JF7LJJF7L--7L--JL7JLJ||LL.F-J-J. +|F-J..FF-7F-JLJF--JF---J|FJ|F7F--J|L--JL-7|FJ|F----J-F7|FF-7LJ|L-77F|||J-L-JF7FLJF7LJL7F-------7|L7L7LJL--7F7||F-7||JF7L----7L--7777..77LL7. +L77L|7JL7|L---7L7F-JF--7|L7|||L---JF7F7F7||L-JL-----7|L--JFJF-JF-J-JJ7.|L|JL|L-7FJL--7LJF------J|FJFJF----J||||L7||L-JL----7L---J--7J-LF.||7 +F-7J|J.FJL7F--JFJL7FJF7|L-JLJ|FF7F-JLJLJLJ|F7F7F7F--J|F--7L7L--JJ.FJFF7|.|7F|F7LJF--7|F7L7F-7F7FJL-J|L-----JLJ|F|||F7F7F7F7L--7FLJ.J|.L-.JFJ +LJLFL7-L-7||F-7L-7||FJLJF---7L-JLJF----7F7||LJLJLJF7FJL-7L-J|7L7FJJF|L|7F77LLJ|F7|F-JLJL-JL7LJ||F-----7F7F7F7FJFJLJ|LJLJLJ|F--J-J..|FF7-J.LJ +LF-FF7-F7||||FJF-JLJL7F-JF7FJF7F--JF7F7LJLJL7F7F-7|||F--JF7F77JL|..-F7LJ||F.J.LJ|||F7F-7F7FJF7LJL----7||LJ|||L-JF-7L-7F--7|L-77|FF-7-LJ7.7JF +FF-FJL7||||LJL-JF-7F7||F-JLJFJLJLF-JLJ|F-7F7LJLJFJ|||L---J||L777LLJL|L7FL-77.LF-J|LJ||7LJ||FJ|7F-----JLJF7LJL---J|L-7LJF7|L-7L7-L|FJJJ-77LFJ +F|FL-7LJLJL7LF7FL7LJ|LJL----JF---JF--7LJJLJL-7F-JFJLJF7F7FJ|FJ7-LJJFJJ--..L77LL-7|F-JL7F7LJL7L7L7F-7F7F7|L---7LF-7F7L--JLJF7L-JFL|L-77FJ|-LJ +FFJJLL7F7F7L7||F7L-7L-7F7F7F7L----JF-JF-77F-7LJF7L-7FJ|||L-JL-7-JJ.FFJLF-L-7-LJJLJL7F-J||F7L|FJ|LJ7LJLJLJF7F7L7|FJ|L--7F7FJL-7LJ.|F-J-7J|J|7 +L-J.|FJ|LJL7|||||F7L-7LJLJLJL------JF7|FJFJFJF-JL--JL7LJ|F--7FJ||.77J|-FJ-LJL-|JF||LJF-JLJ|FJL7F7F7F7F---JLJL7LJL-JF-7LJ||F--J..F||...LF7|L| +|L-F-L-JF-7|||||LJ|F7L--7F----------J||L7|FJFJF---7F7L-7|L7|LJ|-J-LF.LJF7.|7...LF-F--JF7F7LJF7LJ||LJLJF---7F7|F7F7FJL|F7LJL7F7F7FJL--7-||7-J +|LL|7|LLL7LJLJ|L-7LJ|F--J|F----7F7F--JL7LJL7L7L7F7|||F7|L-JF--7-.LF|J7.J-L|7F-7.|.L---JLJL--JL-7|L----JF--J||LJLJ|L-7LJL--7LJ|||L7F--JF||.LJ +FJLJ-JF|L|F--7L-7L-7||F7FJL---7|||L--7FJF-7L7|FJ||LJLJLJF7FJF-J.|.JJFJ-|JL7.7L|--F7F-7F-7F-----JL---7F7L-7J|L---7L--J-F--7|F-J|L7|L-7JF||7F| +L-7LF-77-LJFFJF7L--JLJ||L-7F-7|LJL7F-J|FJFJFJ||FJL7F7F7||LJFJ||-F.LLL7F|||J|-7LJL|LJFJL7|L---------7|||F7L7|F---JF7F7FJF7|LJF7L7LJF-J.FJL--7 +LFJ.F--7FF--JFJL--7F--J|F7|L7|L--7|L--JL7L7L-J||F-J|LJL7L-7L--7L-7J..FJ.LFF-J7FF-JF7L7FJL----------JLJLJL-J|L---7|||LJFJLJF-JL7|F-JF7FJF--7| +F|L-L-7L7L7F7|F---J|F-7LJLJFJL---J|F-7F7L7L--7LJL7FJF7FJF7|F--JLJ7F7-FJFLJ|J|--L--JL7|L------7F7F--7F7F----JF---J|||F-JF77L7F-J||F7|LJFJJLLJ +FL.L|LL7||LJLJL7F-7|L7L7|F7L-7F7F7LJLLJL7L--7L7F7LJFJ||FJ||L-7F7JF7F7JF-JJLF7.LJ|LF-JL7F--7F7LJLJ-FJ|||F----J-F7FJLJL7FJL7FJ|F-JLJLJF7L7.|L| +L-F-|-L||F-7F-7LJ7LJJL7L-JL--J|LJL--7F77|F7FJ|||L-7L7LJL7||F-J|L-JLJ|J|L77F-JFF|||L--7|L-7LJ|F-7F7L-JLJL-7F7F7|||F---JL7FJ|FJ|F-7F-7||FJ.F-L +JFJLF--J||FJL7|F7F77F7L-------J7F7F-J|L7|||L-7|L-7L7L7F7||||F7|F--7FJLJ|LLFJJLF-7F7F-JL7JL-7|L7|||JF7F7F7LJLJLJLJL----7||FJ|FJL7|L7LJ|L--7.J +||-FL--7LJL7FJLJLJL-JL7F--7F--7FJ|L7F|FJLJL--JL-7L7L7||||LJLJLJL-7LJJJJF77|L7.L7LJ|L7F7L---JL-JLJL-JLJLJ|F7F7F7F7F-7F-J|||FJ|F-JL-JF7|F--J-| +|.F|JJLL7F7LJF7F7F---7|L-7|L-7|L7L7L-JL---7F---7L-J||LJLJF7F-7F--JF-7FL|FF--7F7L-7L-J|L--7F7F7F-----7F-7LJLJ||||||J|L--JLJL-JL-7F--J|||J||J. +F7.|J.|LLJL7FJLJ|||F-J|F7||.FJL7|FJF------J|F--JF--7|F--7|LJ|||JF-JFJJ-LLL-7LJ|7.|F7FJF--J|||||F-7F-J|L|F--7LJLJ|L7L7F-7F--7F--J|F-7|LJ.-|F| +||FF7LJ-LL-LJ-F7||FJF7LJLJL-JF7LJL-JF--7F--JL7F7L7FJ|L-7|L--7||FJF7|FJ.|.|LL-7|FFJ|LJFJF-7|||LJL7LJF7L7LJF7L---7|FJFJ|F|L-7|L---JL7||JL|FL|| +7-F7-J..LLF---JLJ|L-JL------7|L7F7F7L7FJ|F---J|L-JL7L-7|L7F-JLJ|FJ||J.F7F7FF7||FJFJF7L7L7|||L7F7L7FJL-JF-JL----J||LL7L7L7FJL7F-7F-JLJ..|7FJJ +--FL7F-7FFL-7F7F7|F-7.F-----JL7||LJL-J|||L---7|F--7L-7LJFJL--7FJ|JLJ-F||||FJLJ|L7|FJL-JFJLJL7||L-J|F---JF7F-7F7|LJF7L7|FLJF7LJ-LJF7-F-||--.. +FFFJLJ..||LFJ|LJLJL7L7L----7F7|LJF---7L-JF---J|L-7L7FJ-FJF7F-J|FJ77.F7||||L7F-J|LJL7F-7L-7F-J||F--JL-7F-JLJFJ||F7||L7|L---JL--7F-JL7--7J7|-| +JJJFL77LL7LL-JF---7L7L-----J|LJF-JF7-|F-7L7F--JF7|7LJ||L-J|L7FJ|F77FJ|||||-||LF---7LJFJF-J|F-JLJF----J|F---JFJLJL-JFJL-7F7F7F7LJF--J|LJL-|-7 +JJ.|FLJ|L|.FLFJF-7L-JF-7F7F7|F-JF-JL7|L7L7LJF--JLJF7F7FF7F|FJL7||L7L7|||||FJL7L7F-J7FJFJF7LJF7F-JF----JL---7|F-----JF7FLJ|||||F7L-7-J7L-.F-J +.|7.F7|7.77--|FJJL--7|FJ|LJLJL--JF7FJ|FJF|F7L----7|||L-JL7LJF-JLJFJFJ||LJLJF-JFJL7F7L-JL|L--JLJF7|FF---7-F-J||F7F---JL-7FJ|LJ||L7FJ-F7.|7|L- +777FJF|7-J7JF||F-7F-J|L-JFF--7F7FJ|L7|L-7LJL7F---J|||F---JF7L-7F-J7L7|L-7F7L--JF7LJL7F--JF--7F7|LJFJF-7L-J7FJLJLJF-----JL7L-7|L7LJ7.F-.--J-J +L|-7-7JL.L-7-LJL7LJF-JF--7L-7|||L7L-JL--JF-7|L--7||||L--77||JFJL--7.|L7L||L--7FJL-7FJL---JF7LJ||F-JFJFJF---JF----JF7F---7L--JL-J-|-F-7|J7L7L +||7.7J7|FLL||7F7L-7L7FJF7L7FJLJL-JF7F7F7-|FJ|F7FJFJ||F--JFJ|FJF--7L7L7L7LJF77|L--7LJ.F--7FJ|F7|||F-JFJFJ-F--JF---7|LJF-7L7F-----7F7.FF|F|.|7 +FJF7L7FL7|7|FF|L7LL-JL-JL7LJF-7F--JLJLJL-J||LJLJ-L7||L7F7|FJL7L-7L-J-|FJF7|L-JF--JF-7L-7|L7|||LJLJF7L7L7FJF7F|F-7LJF-J-L-J|F---7LJL7FL.FLF-F +J7|7F|7.|L|JF7|FJF-7F--7LL--JJLJFF7F------JF77F7F7|||FJ||||F7|F-JF7LFJL7||L--7L7F7L7|F7||FJLJ|F-7L|||L-JL-JL-JL7L-7L7F--7|||7F7L---J7|F|FJF| +.FJ||J.FJJ|FJLJL7L7|L-7L------7F-JLJF7F----JL7|LJ||||L-J||||||L7FJL7L7FJ||F-7L7LJL-J||||||F7FJ|FJFJL--7F7F-----JF7L-JL-7L-J|FJL7F7F7LF77-JFJ +77-FJ7FLJJFL---7|FJ|F7L--7F7F7LJF7F7|LJF7F-7FJL-7||LJF7FJ|LJLJFJL7FJFJL7|||FJFJF----J||||LJ||FJL-JF7F7LJLJF--7F-J|F7F77|F7FJ|F7LJLJL-JL7.FFJ +7-F|L7JJL-FF-7FJLJFJ||F7FJ|LJL7FJLJLJF7|LJ|||F7FJ||F-JLJFL-7F7L--J|FJF7LJ||L7|FJF7F7FJ|||-FJ|L7F7FJLJ|F---JF-JL-7LJLJL-J|LJ7||L-7F-7F--J7FF- +--JJ|||.F.FL7LJF-7|FJLJLJFJFF-J|F----JLJF-7LJ||L7LJL7F77F--J|L----JL-JL-7|L7LJL7|LJ|L7|||FJFJ.LJLJF7||L7F-7|F7F-JF7F7F-7L---JL-7LJFJL-7.LF|. +JLL.FJ77|7F7L-7|FJLJF----JF7L--JL-------JFJ|FJL-JF--J|L7L--7L7F7F-7F7F7FJ|L|F--J|F-JFJLJLJFJF7F7F7|L7S-JL7LJ||L7FJ||LJFJF7F-7F7L7FL-7FJ7||L| +L7..||L-F-JL--J|L7F7|F----JL--7F7F7F-----JF7L---7|LF-JFJF-7|FJ||L7||LJ|L7L7|L7F7||F7L-7F-7|7|||||||FJF7F-J-FJL-JL7|L-7L-J|L7LJL-JF-7LJ-F77.7 +||7-LLJFL--7F7FJJLJ||L-7F7F7F7LJLJLJF---7FJL7F--JL7|F7L7L7LJL-JL7||L-7|FJFJ|FJ||||||F7LJJ||FJ|||||||F||L---JF7F7FJL-7|F7-L-JF7.F7|FJJ-FJL-.J +J.|L||FFFL.LJLJF---JL77LJLJLJL-----7|F-7LJF7|L--7FJ||L-JJ|F7F---J||F7||L7|FJ|FJ||||LJL7-FJ||FJ|||||L-J|F7F-7||||L--7|LJL----JL-JLJL7|7.|||F| +.7|LFJ-|JL|||L7L---7FJF7F-------7F7LJ||L--JLJF7||L7||F7F7LJ|L7F-7||||||-|||FJ|FJ||L--7L7|FJ|L7|||LJF--J|LJJ|||||F7FJL-7F--7F7F--7F-JF7F-7-LJ +-77-L|F7JF777.FF---J|FJLJF7F7F-7LJL-7L--7F7F7|L7L7|||||||F7L7||FJ|LJ|||FJLJL7|L7||F7JL7||L7L7||||F-J|F7L--7||||LJLJF7FJL-7||||F7LJF7|LJFJ-|J +|L|7--L|-7.LF--JF-7FJL7F7|LJLJJL---7L7F-J||||L7L7|LJ||||||L7||||FJF-J||L--7FJ|FJ|||L-7||L7|-|||||L--7||F--JLJLJF--7||L7F7||||LJL7.||L7FJJ-F- +|FL7-L7L---JL--7L7||F7LJLJF7F7JF--7|JLJF7|||L7|FJ|F-J|||||FJ|||||FJ-FJ|F7FJ|FJL7|||F-J|L-J|FJ||||F--J||L-7JF---JF-J|||LJLJ||L7F7L-JL-JL7|L7| +FL-|.LLL7|7|L7.L-JLJ||F---JLJL-JF7LJF7L||||L7|||J||F7||||||J||||||F7|FJ||L7|L7FJ||||F7L7F-JL7|||||FF7||F7L-JF7F7L7FJL---7FJL7|||F--7F7FJ7.77 +7LF-JJLFF|--LJ7LF7F-J|L---7F7F-7|L-7|L7|LJ|FJ||L7|||||||||L7|||||LJ||L7|L7||FJL7||||||FJL7F7|||||L7||||||F--JLJ|FJ|F----J|F7||||L-7LJLJJJFL7 +||.||F.FJ|JJ|7FFJLJF7L---7LJLJFJ|F-JL7||-FJ|FJL7LJ||||LJ||FJ|||||F-J|F||FJ||L-7LJ||||||F-J|||LJLJ-LJ|||||L----7|L-JL----7||LJ|||F7L-77JJ.LJ| +FFJ-JJ|J.F7-L-FJF7FJ|F-7FJF7F-JFJL-7FJ|L7L-J|F-JF-J||L-7||L7|||||L-7L7||L7|L7FJF-J|||||L--J|L7F-----J|LJL7F7F7|L7F-7F---J||F7||LJL7FJ7J.F7-J +|LF7.L|7F--7J.L-J|L7LJFJL-JLJF7|F--JL7L7|F--JL-7L-7||F-JLJ-LJ|||L-7|FJ||.LJFJL7L7FJ||||F---JFJL---7F7L--7||||LJJLJFJL-7F7|||LJL7-L|L7J-7-FJ| +|F-L7-L-J7J|7L.LFL-JF-JF-----J||L-7F7L7|||F-7F7|F-J||L-----7|||L7FJ||FJL--7|F-JLLJFJ|||L7F7FJ7F--7LJ|F7FJLJ|L----7|F7FJ||LJL-7FJ|F|FJ7L|.7-| +.|JLJ.L|-77||7-F7|F7L-7|F-7F--J|F-J||FJ||LJFJ|LJ|F7|L7F----JFJL7|L7|||F7F-J|L---7FJFJLJFJ||L-7L-7L--J|LJF7.L7F7F7|||LJL||F7F7|L-7FJL---7J|.J +7LFJ..FF--|J.FF|L-JL7|LJL7LJF-7||F7|||FJ|7FJFJF7LJLJFJL-7F7|L-7||FJ||LJ|L-7L7F7FJL7|F--JFJ|F7L-7L---7L--JL7FJ|LJ|||L7LFJLJLJ||F-JL-7F--JJ-F7 +L-77-L-L-|.L7--L7F-7|F7F-JF7|F||||||||L7L7L7L7||F7-FJF-7LJL--7LJ||||L-7|F7L7||||F-J|L7F7L7|||F-JF---JF----JL-JF-J|L7L-JF7F-7|||.LJF||JJ.|-J7 +F-J|J|FJ|.|.LJ|F||FJLJLJF-J|L7||LJ||||LL7L7|FJ|LJL-JFJFJF-7F7|F-JL7L7FJ|||FJLJ||L-7|7LJL7|LJ||F7L-7F7L-------7L7FJLL7F7|LJFJ|LJJ-L-LJJ.F|7|| +JF-|F7|.-|LL-F-FLJ|F7F7FJ7FJFJ|||FJ|||F7L7|LJ|L-7F-7L7|FJL||LJL7F7||||FJ||L-7-|L7FJ|F---JL7JLJ|L--J||F7F-7F7FJFJL-77LJ|L-7|FJ.||.LJ.||7FL-7F +FL.J-L77J.|7.FFLJFLJ||||F-JFJFJL7|FJLJ||FLJF7F--JL7|FJ||F-JL7F7|||L7||L-J|F7L7|FJL7|L7F7F7L7F-JF7F7|LJ|L7LJ||FL7F7L--7L--JLJ|.|---JF-JLL-LJ| +L7.LF|J77-F7F7JJ7FF-J|||L7FJFJF7|||F--JL---JLJF-7FJ||FLJL-7FJ|LJ|L-J|L7F7LJL-J|L-7||FJ|LJL7||F7||||L-7L7L-7||F-J||F-7L7F--7J7.|FF.F||FJ|||-J +|-|FL|-LF-LL|LL.L7L-7|LJ-|L7L7|||LJL7F7F-7F-7FJFJ|FJL--7F7||FJF7L--7L7LJL----7L-7|||L7||F-J|||||||L7FJJ|F-JLJL-7||L7L7LJF-J7F7||LL-J-F7||L-J +7LLFL||.L7.|L7LF7FF-J|7F-JFJL||||F7LLJLJ7|L7LJFJFJ|F7F-J|LJ|L7||F7FJL|F7F-7F7L-7LJ||FJL7L7FJ||||||FJ|F-JL7F7-F7LJ|FJJ|F7L-77|-FLF7||.L7-|7L7 +-77FF|-7J|L|JF--7|L--JFJF7L-7|||LJL7F----JFJF-JFJ|LJ|L7FJF7|FJ|LJ||F7|||L7|||F7L7-LJL7FJFJL7LJ||LJ|FJL7F7LJL7|L-7||FFJ||F7|77.LLJFL.F-L7JF.- +L-J-|LLJJFJJ7||LF7J|JLL-JL7FJLJ|F7FJL7F7F7L7L7FJF---JFJL7||||FJF-JLJ|LJ|FJLJ||L7L77|FJ|L|F7|LFJL-7||F-J||F-7LJF-J|L7|FJLJ|L-7J.|.FJFF.||FJFJ +.|||J..-J|L|FLJ-|J|L--F---JL--7|||L-7LJLJL7|.LJFJF--7L-7||||||7L-7F-JF7|L-7FJ|-L7L7-L7|FJ||L7L7F7|LJL7FJLJFJF7L7LL7|LJLLJL--J-FL.L7-|7L77.77 +--J----|.-F|||7.|-L7|LL--7F7F7||||F7L7F---JL--7L7L-7L7FJ||LJ|L-7FJL--J|L--JL7L-7L7L7FJ||FJ|FJFJ||L--7|L-7.L7|L7L-7||.J7L|J-LL.-.7F7||L7.LL.7 +L|L|7J.-7.J.FJJ-|..-JLL-FJ|||LJLJ||L-JL-7F-7F-J-L7FJFJ|FJ|F-JF-JL7F7F7L--7F-JF7L7|FJ|FJ||FJ|FJFJ|F-7|L7FJF7LJ|L7FJLJF|JFL--F|L|FJ-|J7FFF.F|J +FJ-LF.-JFJLLJJJ7L|7|LL.-L7||L-7FFJL7F---J|FJL7F--JL7L7|L7|L-7|F7L||||L7F7||F7||FJ|L7||LLJL7||FJFJL7||FJL-JL--7FJ|-L|77-|FF.-JFLJLFJL77LJFFL7 +|J7FJ7.||||..J.--LFJ-7|7FLJ|F7L7L7FJL7F7FJL7FJL-7F7|FJ|FJ|F-JLJL7|||L7||||||||||||FJ|L7F--J||L7L7FJLJ|F7F-7F7|L7L7.LF|J|7JJ.JFL-FJJJL7.|L|L| +-JF|.F77L7F-LJ.FL7L|F---F-LLJL-JLLJ7L||LJF-J|-F-J|LJL7|L7|L7F7F7||||FJ||||LJ|||L7||FJFJ|F-7||FJFJ|F7FJ|||FJ|LJLL7L77...LL7-|7|.FFJ.FFF-7JJ|J +|7L-F-J-.L|.FF.FL|FFLJ-7J.||-|7|F7F--J|..L-7L7|F7L-7FJ|FJL7|||||||||L7||||F-J||FJLJL-JFJL7|||L7L7LJ||FJ||L7L7J-LL7L7--L.F--LJJJ|J|-FLJLFJFF7 +.L|F|||L..|F-JFLJLJJJ.L7-|F|F|FF|-L7F7|7|7FJFJLJ|F-JL7|L7FJ||LJ||LJL-J|||||F7|||F7FF7LL--J||L-J|L7FJ||LLJJL-JL-J|L7||-|-|.FF|J||FJ.-F7J|F|.| +|.L-JL-|7F7.LFFL7JFJF7.J|.FLJLLL||FLJ|L-77|FJJFFJL7|JLJ.|L7||F-JL----7||||LJLJ|LJL-JL--7JLLJL|||JLJJLJ7L|-J.J|.||-||J|F-L-L7LFJ.L..|LJLFJ|7J +|-L-7-L7F|J.FF--F-J.||LFF-L7|-7LJLJ|LL-7|FJ|JJFJF7L7|F--JFJLJL7F--7F-JLJLJ7F--JF7F-7F7FJ-LJFLLF77L.F|J7FJFL---.-J-LJJ-J|--LJF|JF.FFJ-FFF-J.| +7FJ-|FF|7|FL-J.F7J.7J7L7|FJL7-F-J-L7-L7LJL-JJFL7|L7L7|F-7L7F--JL-7|L7F7|F-7L-7FJ|L7||||F-7JF7FL---7.F-L||LJ|7L7J|.|.LJL|-7LJ7F--F-7L---FJLF- +J-.||L7JL7LJF---.--FJ||.LJ||J-L7LF.|7FF||L|J7|FLJFJFJ||FJFJL7F7F-JL7LJL-JFJF-JL7L-JLJLJ-L7-|JLLJFLL7|7-|F--L7FL-JFF|FFL|FJ-J|LF.L7JL.FJLF-|| +L|.L7JL7FFJ7F7JFJ|FL-|7.|L|.|..||LLL7-F-J.JJL|-L7L7L7||L7|F-J|||F77L-7F7FJ-L--7L--7F|FJ.LL7-J||.JJF---.F77LLJ.L7F--J-|7|7|LF|.|7JL..F7J-LF-7 +||-J||FL|J-|L|L77FL.FJFL|J.FF-J7-7..|F7-|F|FJL|-J7L7|LJ-||L7FJ|LJL--7||LJ7LLF-JF-7L7L-J..-.LLJJ7..F-7..|LF--L|FFLJ7|.-LL|JFFJ.JL7.FFLLJF-J|J +FF7FJFFJ|F--J|7L-7-7-J||.F7J.--F.|-7-F|.7--F7L|.|-L||LF-J|FJL7L7F---JLJJLJ.LL-7L7L-J-7|7L..-7||JFF77..-FJLJ-FJFJ..-|7.JJ.|7FJJ7LJFL-7LF7J7|. +FJLL-7JLLF-|7L7.|L||..F|7-JJ7.FJFJ.L7.L77L||L7JF|7.LJ.L7FJL7FJFJL7F7-J7.F.F7-|L-J.LL-|.JJFFL77J.F7J|77L|-7J-FF7L77LFJJ.LFJFL.FF7||-|7|LJ7-|7 +L7||.|.-JLJ|.F|-.FFJ..||.7J7-JJFL7|LJ-.LJ.L|L--J||.|.FL||F-J|FJF7LJL7-L.LF.F-J-|J.LL-JFJLFLJF-7F-F-L--FJF|7-L.|--FF-JJL7J-|LJF7F7JLJ--LLJF|J +FFF7J|.|.LF|.7JJ--LJF-|LFJFJJ7F|LFL7J|FJ|.F|-|JF|L-L77FLJ|F-JL7|L7F7L7FJL|.F.J.||FF7LF|F7LL7FFJJ7L-7J|||7.F-|.J.F-J.|.LF-F-JL|L7|L.FLFJJ.FJ. +7.LJL---7.LL--7J-JLLJ.|LLL-J-7--..JL-JLJ--FJ-|----LLL--JLLJ-LLLJLLJL-JJJ.L-.|JFLJJ.LJ..F.7--LL.JJ-LLJF-JL-JJF-JFJJ.F-7L--|J.LL.-JL-L.|-----L \ No newline at end of file diff --git a/day10/src/main.rs b/day10/src/main.rs new file mode 100644 index 0000000..986a0ba --- /dev/null +++ b/day10/src/main.rs @@ -0,0 +1,114 @@ +use std::fs; +use strum::IntoEnumIterator; +use strum_macros::EnumIter; + +fn main() { + let input = fs::read_to_string("input.txt").unwrap(); + let input = parse_input(&input); + let start = find_start(&input); + + let mut start_dirs: Vec = vec![]; + for dir in Direction::iter().filter(|x| x != &Direction::Start) { + let (x, y) = ((start.0 as i32 + dir.to_ind().1), (start.1 as i32 + dir.to_ind().0)); + if x < 0 || y < 0 { + continue; + } + let neibhor = &input[x as usize][y as usize]; + if neibhor.contains(&dir.reverse()) { + start_dirs.push(dir); + } + } + + let mut finished = false; + let mut count = 1; + + let mut first_pre = start_dirs[0].reverse(); + let mut second_pre = start_dirs[1].reverse(); + let mut first_pos = ((start.0 as i32 + start_dirs[0].to_ind().1) as usize, (start.1 as i32 + start_dirs[0].to_ind().0) as usize); + let mut second_pos = ((start.0 as i32 + start_dirs[1].to_ind().1) as usize, (start.1 as i32 + start_dirs[1].to_ind().0) as usize); + + while !finished { + let first_next = &input[first_pos.0][first_pos.1].iter().filter(|x| x != &&first_pre).next().unwrap(); + first_pos = ((first_pos.0 as i32 + first_next.to_ind().1) as usize, (first_pos.1 as i32 + first_next.to_ind().0) as usize); + first_pre = first_next.reverse(); + + let second_next = &input[second_pos.0][second_pos.1].iter().filter(|x| x != &&second_pre).next().unwrap(); + second_pos = ((second_pos.0 as i32 + second_next.to_ind().1) as usize, (second_pos.1 as i32 + second_next.to_ind().0) as usize); + second_pre = second_next.reverse(); + + count += 1; + finished = first_pos == second_pos; + + } + + + println!("{:?}", count) +} + +fn parse_input(input: &String) -> Vec>> { + let input: Vec<_> = input.split('\n') + .map(|line| { + line.chars() + .map(|char| { + match char { + '|' => vec![Direction::North, Direction::South], + '-' => vec![Direction::East, Direction::West], + 'L' => vec![Direction::North, Direction::East], + 'J' => vec![Direction::North, Direction::West], + '7' => vec![Direction::South, Direction::West], + 'F' => vec![Direction::South, Direction::East], + '.' => vec![], + 'S' => vec![Direction::Start], + _ => panic!("Invalid pipe char") + } + }).collect::>() + }).collect(); + return input; +} + +fn find_start(input: &Vec>>) -> (usize, usize) { + let mut start_point: Option<(usize, usize)> = None; + for i in 0..input.len() { + for j in 0..input[0].len() { + if input[i][j].contains(&Direction::Start) { + start_point = Some((i,j)); + } + } + } + + match start_point { + Some(x) => x, + None => panic!("No start point found! AHHHHH") + } +} + +#[derive(Debug, PartialEq, EnumIter)] +enum Direction { + North, + South, + East, + West, + Start +} + +impl Direction { + pub fn to_ind(&self) -> (i32, i32) { + match self { + Direction::North => (0,-1), + Direction::South => (0,1), + Direction::East => (1,0), + Direction::West => (-1,0), + Direction::Start => panic!("Start should never be converted to an index. AHH"), + } + } + + pub fn reverse(&self) -> Direction { + match self { + Direction::North => Direction::South, + Direction::South => Direction::North, + Direction::East => Direction::West, + Direction::West => Direction::East, + Direction::Start => panic!("Start should never be reversed. AHH"), + } + } +} \ No newline at end of file