commit 028be47d41bc4396c39f7121925cfd51b805c54e Author: Daniel Bulant Date: Sat Dec 2 10:46:52 2023 +0100 first commit diff --git a/2021/.gitignore b/2021/.gitignore new file mode 100644 index 0000000..1de5659 --- /dev/null +++ b/2021/.gitignore @@ -0,0 +1 @@ +target \ No newline at end of file diff --git a/2021/25/Cargo.lock b/2021/25/Cargo.lock new file mode 100644 index 0000000..9ae2c51 --- /dev/null +++ b/2021/25/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "twofive" +version = "0.1.0" diff --git a/2021/25/Cargo.toml b/2021/25/Cargo.toml new file mode 100644 index 0000000..060e256 --- /dev/null +++ b/2021/25/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "twofive" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2021/25/input b/2021/25/input new file mode 100644 index 0000000..a5c0ad5 --- /dev/null +++ b/2021/25/input @@ -0,0 +1,137 @@ +>.v>.v...v..v>>.>.>...vvv>>.v.>.v>>vv..>......v>.......v.>>..vvvv.>..>>.>.>vv...vv>..........>..v...>v...v.vv..>v>.v.v>>v.>vv.v.>.vvv.>v.>. +v.v>>..>v>>.>>v...>>v>v>..>v.>.......v.>..v>>..>>.>.>....>.>>vvv..>...>>>...>v>...>>.vvv...vv..v.v..v.>..v>v...>..>.v.>.>>v>v>vv.v........v +....>.>vv>.v>>.>>>v.v>vv>>..v..v>..>..v......>....v.>vv>....v>>.vvvv.>.>..>.vvv...vvv.v>...>>......v>>.v.>v>.>v>..v...>>.>.vvvv.v.v.vv.v.>> +...>..v.v.....>vv..vv.vv.....>.v.>v.v.>>..>v.vv.v.>>v.>.>..>>>>.>vvvv>.v.v..>..vvv.......v.>.>v>vv>>.v.vvv..>>>>>v>.....>v...v>.vvv.>v...v. +..>.vv.v.v>v.v..v.v...v>v>v.>.v.v>v>.>>..>>v.>..>.>.......v>v..>...>.>.v..>v..v>vv>..>>>....vv.v....>.>..v.v..vv.>.>.v>>v..>>......vv.>.>v> +.>.>.>.>>>>v..>.>.v>vvv.>v>..>v>vv.>v>.v...vv.>...>.v>.>>v.>v.>>.v>.>..v..>v>>...>.>.v>..>.v>>vvv.v.v>v>.>..vv....>.vv..>>v.v..vv..v.>.v>.. +>..>.>v>>v>>>>....v....>vv......v>.v.vvvvv.>..>v...>>v....>>v>>>>>.>>.......v..v>...>.>.v.v.vv....>>>v.>..v.>vv>...>v.>v>v.v..>.vv.>..>..>. +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... +>.v>..>>>..>..vv.vv>.>.>.>>vv.>v>>v.v>..>...v.>..>..........v..v.vv.>..>..>.v..v...vv..v>>>.>v....>..>>....>>>..v.>....>..v..>...>>.v.>>.>v +>.>..v.vvv..vvv>.v..>v>>v>>.>.>..vv..vv>>v....>.v.>vv>...>..v....v..v..v..>v>.....>>vv.v.v>.>>...v.>..>vv....>.v.v.>>...>..>>.>>>>>>>.v>>v. +v.v>>..vv>.v.v........>.v.v....>.v.vvv.>v>..>....vv.v.vv>.>v>v....vv.>v.v..>v.v>>...>>vv..>.v.>v.>v....v...v>vv>.>.v..>.v.....vvv>>..>...>. +.v>v.v>..>v....v.>v>...vv>v..vv.v.>>...v....v>>.v>v>>>.vv>>.vvv..v...v>....v..>..>vv>>v..v.v.>>>>>.vv..vv...>..vvvvv.v.v>v>>..>v.v.v>..>>v. +..v.vv>..v.v.>>..>v>.....>>.>v..>.>v.v.>vv>>>vv.>.v.>v>vv>>v...v>vv>>.>v>v..>.v>v>>..v>..v..v>v.vv.v>>.>v>>..>>vv.v>..v>v>>.v.v..>.>.v..vv. +>>.vv>....>v.>v.>..>....v.>..v>>..>....vv..>.v>.>>..>.v....v.>v>v....v.>>.v..vv.vv.>..vv>.vv.vv>v.v>v.>..v..>.v>v...v...vvv>....vv>..v>.>.. +.v.v>>>v.....v...v..v...v.>.v...>>.vv.>>..v>..>v.v..v..v.v>.>>...>>....>..v>.>v.v.v..v.>>vv..v.>...>>vvv>v.vv.v.v..v.>.v.v>...>>......v..>> +v.>..vvv.v>>v.v>>...v..vv.v.>.>v..v..>v.>v.>>v..v..>..v..>..>v>v.....v.v>.>v.v.>>>.vv.v.>>..>..v..>v>>....v.vv>>v>>v>v.>v..>>>v>..v.vvv.>.. +...>..>>.v....v>>..>.>v...v>>>..>....vv.v.>>...>...vv.vvv.v...>..v..>..v>.v>v.vvv>>v.>.vv...vvv>.>vv.>.v.vv...>.vv.>>>>>......>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>..>...v>v.>>>vvv.v..v.vv>.v>..v>.v.v..vv.>v>.v.vv.>...>v..>...v...>v.v..v....>v>>..v...>..>...>...>>.v.v>.>..>.vvvv..>>>v.vv.>v.v>v. +.>...>>....v...>>v>v>v.v......v.vv...>.vv.v.>..vv>.v..>..>.....vvv.v..v.>...vv.>>>vvvv.>v>vvv...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.>.v.>v>v..>>>vv..>...>.....vvvv..>..>.>>>...>>>v>v..>...v.>....>.>...>.>v...>..........> +>.....v.>..>.>>......>vv..v>...v...>>..>.v>>v....v>>...v>......v..v...>...>.>v.>.vv.>....>...v..>>>..>.>...v...vv.v..vv..>...>....>.......> +v.>...>v....>..>>v.vv>.>>>..>vv..v..>>....vv...v..v.v..v>..>>>.>.v.>.v.v>..vv..>>.v.......v>.v.vv..>>v>>.....vv.>>..v>.>>v>...>vv>v>>v..>>v +v>.v>.vv>>.>..v..>....v...v...vv>......v.v>v.>...v.vv>..>v.v>v>.v.>>..>>.>.vv>v.v.>.....>.v.>..v>.....vv.>>..vvv..vv.v..v>...>..>..>vv.>..v +v>.....>v>>.>vv.vv.>>v..vv.>vv>v.vvv..v.v.>...v..>>v>.>vvvv.v...v.>.vvvv.>.v.v...v.>....>vv>..v..v..>....v.>.....vv.>.v.>.>.vv>vv..vv>v>>>. +>vv..vv.>>.vv....v>>vv.v....v>>v.>>.>...vvvv..>.>v..v.v.v.......v.....>>>v..>.v>v>>v.>....vv>>.>v....vvvv.>>...>.v.v>...>>..vv>....v..>>v.. +....>...v>vvvv...v...>v.v...v.v...v>v>...vv....>>..vv.>....>>.vv.>.v>.>>v..vv>.v.>.>.>>.>.....v...v...v..v...>.vv.v....>.>v>.>.vv>>.vv.>>.. +.vv>.>...v>...>v>.vv>.....>.....v.>.>.>.>.vv...>v.>.v>.vv.v.>....v..v.>.v>.>v>v...v>.v..v.v....>.v.....vv..>vv.vv.>..>>...>.>..>.....>..v.. +v..v..>.vvv>.v.>vv.....>v.v...v.>.v.v>v.vvv.....v.>.....vv>...>>...v>>.>>..vvv>..v>>..>.>v>.v>v..v.>...>>v>v>.v.v..v..>v..>>.>..>.....v...> +v.v.v..>>>....>.>>>v>>.v...>...v.>.vv>>..v.>..>>>...v..>v>..>>.>..v....>vvv...v>v>>>..>..>v>.>>>..vvvvvv.>vv.v...>.>v..v.>v....v.>..>.v.... +>>>>..v>v.....>.....>.v..v...>>....>...v..v...v>v.v>>....v...v>.vv>..>vvv.v..>vv.v...>......>v>>v..>...>....>........vvv>>.vv..>>.v..>>v.v> +>v...>v>>>...v>.......v>v.vv...v.vv..>v.>.>vv>>vv...>vvv>...>.v>.>..>..>...vv.>>..v..>.v..v.v>v>>..>...v>v.>.>v....vvv...>v>...v.v..>..v.>v +>.v.v..>..v.>.>.v.>..v..v.vv........>>vvv>.>v.v..>v.>..v.>..v>>....v..vvv>v..v>>>v>>...>.>>v>vv>....>v...>.>.vvv..>..v.vv.>....>..v..>.>>v. +>...>v..v.......v..v..>v...vv.vv....v>vvv>...>>.....>>vv.v.v...>.>.vv>>>.>..>>>..>..>.>v.......>vvvv.>.>vv.v>..>v.>.v..>.v...v>v>.>.v>...>> +vvv.>>.>v>....v>.>.>>v.vv...v.>>>>.vv>v>.>vv..v.>...v>>.v>..v.>v>..vv.>>vv.....v.>v>.>....v>....>vv.v.>v....v.v>>.>.v..v..v>.>>..>.....vv.v +>>v.>>>...vv.vvv>>.>v>>v.>....v.>.>>v>..>.vvv..>v>.>.>>.vv..v.v>>v.>.v>v>>.v>.......>v>.>>>.....v...>...v>..>..v>vv..vv.>.v..>vv>..>vvv.v.. +>v...>v..v.v>>.....>....v>v..v>v.>..>.....>>..v>.>v.>.>.v>.>.v....>v...>.v.v.>vv.v.v.v..v>..v>v>..vv.v>...vv.v.vvvv>.>...>v...........>.... +.vv.>v.v.>>>>v..v.vvv>...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.vvvv..>...v.vv.>vv..v>vv>>>..v>.v.vvvv..v>.>....>...>vvv>>>.v.>v>v.vv..vvv.v.v>.v.......>...>vv>v..>...>>...>.>v>>v..v.>....vvv> +v>.v........vv>.v.....>.v...>.>..v>.........>.>.v>>....>>.>>..>..v.vv>>v...v..>v.v...v.v.vv.vv.....v>.v>>v.v>v>>>....>v>>>>v>v..v.>vv.vv.>. +>vvv....>...vv.>>..v>>>.>>v....>...>.>vv..v>v.v.>>.v>.vv.>v>>.>v>....v.vv.v...v>.v.v>..>...>.>v>...v.....>v.>.v>....>.>.>.v.v>v.......vvvv. +v..vvv...>>.v....vv.>.vv.v..v.vvv.>>>>..>>..>.....>v...vv.>.v.>vv...v>..>v...v....v>vv.>.>v..........>v...v>v..v>v..>.....v>.v>..>v......v> +vv.>.>vv>v..>v>.vv...>.vv..>.v.>>>.>....v>v>>>>..v>....>vv..vv.>.v>.v.>...>.v.v>v>v>v.>..>v......v.vv>..>.>..>..>.v>vvvv.>...vv.>.>vvvv>>>> +>..v...>v.vv.>>vv>>.>.>....v>...>v...>....>..v.....v.v.>>>>.>.>.>>.>.>..vv.>>vv..>...>>>.v....v.>>.vv..v>.>>>.>v..vv..>>>.>vv>>.....>vv.>.. +>.>>..vv>.>v.>>v...>..v>...>..>.>v>>v.v.....>.>..>.>v.v>.....vv>v>v..>v......>v..vv...>>>>>..v...>....>....>v.v>..>v.>.>.>.v.vvv..>>.v>v.>. +>....v>>v>...>v.vv>>v..>>..v....>vv.v.v>.......>v.v.v.>>.v>vv>>..v..>...>.>......>>..>>.>....vv.>.v>>....v.>...vv.v>.>.vv.......vvvv......v +.>..vv.....v....>>...v>.v.>>.vv..>.v...v.>>v>>>>vvvv....v....v.vv..v.vvv>>..>...>v.....>....>....v>v...>..>>..>..v.v.v...>>>.v.vv.v...v.... +..v.vv>.v>.v....>.v..>>>>v>.>vv>.....>v..>....v.>.v...>.v>>.>..v>v>...v>....>>.v..v...v.....>v.>...vv>>.>..v>.vv>v>v>...>>..vv.>..>.v.>.>.. +..>vv>.vv.v>v>v>.vv..>>>>..>>..>v>v>vv>.>.v>v.>>vv.>..>.vv.....>..>>.v.>..>.v.>.....v.v.vv.vvv..vv....>....v>.v...v>.>>v..v...vv.>...>.>.>. +.>>>....>vvv......v>...>v.>vv.v.>>vv>.....v.v.....v.>.>.>..>>.>vvv..vv>.>>...v>..v>.>vv>>......>>.v>..vv..v..>v>v>.>.>.>>..v..v....vv.>.v.v +.>.v..>.....v>v>>.>.>.>>>v>v..>....v....>>vvv.>>...vv>>v.v..v.>.>.>v.>..>>>v...>vv>.v>.vvvv..>.>.vv>.v..>.v..>..vv..>>>..v>>.>..>.vv>v.>v.. +..>v>>.v.>.v>>v>v..v.vvv.v..>>>v.vv.....v.v.>.vv>.>vv.v>.vvv..v.>.v.>v.vv..v>.>.v.vv>>...vv.>v.>.>.vv.>v.vvv....vv.....>...v>..v.>v.>v..vv. +>.vv>.v>...v.vvv...vv.v>.vv>.v>vv>>v>>>>....>..v..v...v>v.>..v..vvvv>>v..v>v.v..>.>v...>...>v>>v.v.v>.....>v.v..>..vv>...>>.>...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.>vv>...>..v>>....>v..v.>v.>>.>.>.>.v.vv..v.>v +..>.......vv>v...>.>.>........v..>.>..v..v..v.>>.>>.v..v.>.>.>.v..>...>v.>v..>..>.v>>.v.v..>..vv.v>.>..v.>v>...>..vvv.v.v.vv.vv>>.v>>..>... +v..>v....v.v>.>.>v..>v...>>.>.v>>>>v.v>>vvvvvvv.v.>vv.v...>v>.>..vv..v..v....v......>>v..v..>v...>.vvv.>...>v....>.v.v..>..>...v.>...v.vv>v +>....v>.vv.....>>v.>>>>>.>.v..>.>v......>>>.>>...vvv......>.>>....v.>v.>..v>>>vv.>..>v>>....>.vv.>...v...v.v..>vv.>..v...v>.>v>.>>.>>.....> +>.vv.v>.....v..>v...>..v....>>...v>......>>v>vv>...v.v....v>v.vv.v.v>...v...>....v....vv..v.>...>.>.>>>......vv...>v>vv.v...>v.v>..>..v...> +vv>.v.....v>.vv>>..>..>.>....>>.>.>v...>>vvv...v..>>.v..v..>>v.v..v>>.>.v..vvvv.>vv>>.>....v.>..v>...v>v..>>v.vv>.>..vvv...>>.v...v..>..v.. +>>v....>>.....vvv...v>v.....v...>>>>...v>...>>>>v...v.v.v.>...>vv.........v..v>>v.v>v>.>>>>>.>vv...>..v.vv.v>..>.>.v.....>>v..>v>v.>v.>v>.v +..>......v.....>vvv>....>>v>v....v>.>v.>v..>vv.vvv...vv..v.v.v.>...v.v>v.>>>....vv..>v...v.....vvv..v>.vv>v...v>.v.vvvv....>.>v.>v.>vv>vv.. +>v...v.>....>.>.v...>>v>..>..>..vv..>.>>vv.v>.>>..>.v.....>>.>>v.v.>vv>v>.....vv.>>v..v>...v>v...>...>.v>..>>v>.>>vv>v>.>.v.vv.>>>.>v.v..>> +>.v>>.v.v>v>.>>..v>>.v>.v>v.v>....vv.vv..v..>...v.v>>..>vvvvv>.>.v..>>>..v..>>..v...v...>v.>.v.vv>.v>..>..>>.>.>.v.v..>v>.v.v>>v.vvv...>.v. +....>.>...>vv.vv..v...v.>>>...>vvv>>.>.v.....vv>vv.>v.........v>v..v..vv.>..v>v.>v....v.>..>.....v..v>>>.....>.>>>vvv...vv>.v..v..vv>.>..vv +v..vvv.>.>>....>v..v..v..v>>...v...v.>.v.>>.v..vv..>vvv..v....v...>.>>vvv>..>v.v.vv.vv.>.>.>vv..v>>>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.>v>...>v.>.vv..>>.>v....v.>..v..v...vv..>>v..v>>vvv..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...v>...vv>>>..vvv>.v.> +...>...vvv>>..>>.>vvv.....vv..v.v>.v..>>.v>>>vv>>v>>..v.>..>v>>v.>v.>.v>>vv>vvvv>.vv.>>.v....>..vv>....>>.>v>..v.>..v>......vv.v>v>.v>..>.. +.v>..v>>..v.vv.v..v>.>.v..v.v..vv.......>.>...>.>..>v.vvv...v..vvvvv.>>.v....v.>v.vvv>v>.>.>..v.vvv..>..>>v..>....>....>v.>...v...vv..>v>v. +vv.v>...v>>.....>v>v...vv>.>.>>.vv..v...v.>.>..>.v.v>>.>..>v...>.v..>.v>.v...>...>.>vv..>vv....>.>.>.>>.>.>>>>.v..>.vv...>>v..>vvv..>.>v>.. +>..>v>.>v.>vv.>vv.v.v>.>.v..v..>v>>.>..>..>.v>.v.v.v>>..>....>>.>>>v.v....v.>>>...>v>v.>.>.v.vv.>>.vv>..>.v........>v>v.>..>.>.>>v.>..>.v>v +..v>>>>v.>vvv>...v..>.......>.v.>vv>v....>.>>>..vv.>..>>v>>v>.v>...v.>...v.v>v.....>v>.vv.>>>v>..vv.....vvv..v.>.>.v..>.>.v.>..v>......>.>. +>.v..>.>..v>vv.v..vv..vvv>>vvvv..>v>v>v>v...v.v>>>>v.>>v.>v..>vv..v...>v.>v..>vvv.vvv..v...vv...>.>>v.v.....v..v.>.vvvv>v..>v.>.v.......v.. +v.v.v.v.v>.>.>v.>.v>>vv.v.v>.>.v>>..v>>>....vv.>...>...v.vv>.>...v..vvvvvv.v..v.>.v>v>v..vvv........>..>>...>..vv>v.......v>>v..v....v>.v.v +v..>>.>..>...>.v>vv...>......v>.>..>v....>v....vv..v.>>.>.>>.......>v..v.>>.v.v>..>.v..>v..>.>.vv>.vvvv>.v>.v>v.>>v.v>v>vvv...v....v>v>.>>. +.>>.>v.v>..>.>v........v>.v.v.v>.........>v>.>>v..>vvvv.>v.>>..v...>.vv>..>....>.vv.vvv.>>>..>>.v>v.v>.>.v>....vv...>v>>.....v.>..v.>.>>>v. +>v>>.v>.v>v...v..v..v>>...>.>>>..>..>...vv.>v>>>.v....>>.......v..v...>.v..v..v.>vvv.......>vv>v.....v..>>v..>.>vv>>..v>.v..>..>.v..v.vv>.> +v...v>v.v.>>.vv.>>...>...vv>....v.v>..>>..>>>...>>.>..v>v.>v..>..>.v....>.>..>.....>.vvv.v..>...v..v>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>...v>v.vv.>v..>>>.>v>.>v.v.v...>.vv..>..>.vv. +v....>.v>..v>.v>.>..>..>.>vvv>>.v...v..>vv..>......vv.v..>>...>>.>>..>v...vv..>.v>.>v>v.>.>>...>.v.v.>..v>>>..>.vvvv>..v.>...v.>.>..v>.v... +>.vv>.v.>v....vv>.>>.v>>v....v.>v..v..>>>..vv..>.>>>.>>.>v.>>.v>>..>.>>...>.....>.>v..>.......v..vv..>>v.>>...vv>>.v.v>....v.v>>.>>..v>v.v. +>v...>>.....v.vv..v>.vv..>.....>....v.v>..>>...>..v..>>.v>>.v>v.v.vv.v>....v....>>.v>....>>vv......>>.v>..>.vv.>..v.v>.v>.vv.>...>>.....>vv +v>v...>.>.>....v.vvv.>vv>.>.>..>>v....>v.......v...>v.v.v...>v>.>.....>v....>.v..v.v.....>.vvvv.v.vv>.v>>...>...>..v>>>>...v>>.v..>v..v>... +..>>v>>vv..>.>>.>...v>>>vvv>v..vv.>...vv..vvvvvv.>>..>v..>.>>>.v.v.vv..v.v.>.......v>.vv...v>.v......vv>v.>v.v>.>>>v...>>vv>.>.>....v..>v>> +..>v.v..v>..v.>vv>vv..>.v.>v....>....v..v>>v>.>.vv....>v..v>..v..v>.v>.>>>>>.....>>.....>>>v.>>.v>..>>vv..>>>v.v.vv..>>..vv...>>.>>...>v... +..>v....v.>v.v.v>.>>v.v>...>>v.v>...v.v...>vv.>>..>>......v.>>vv...>.>....>v>.v...v....>.>.vvv.>>>v..>>vv.vv..>v.....>>....v>>v>.....>....> +v........>v..>.>vv....v.v>>.v>.>>v>.vv..>...>..>v.vvvv.v.>....>.v>>.>v>>>.v.>.>.....v.v>v.v>v.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.>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>v>.>>..v.....v..v>vv.>>...v.v.v.vvv>>>>..>vv..v>....>...>>.>....v>.>>..>>....vv>.vvvv.v +.vvv..>.v>vv>>>.>.v>..>>.>..>.vv.>....>.v..v>vv...vvv..vvvv.>.v.v.>>vv>..>>........>>..v...>.vv...>v>.v.>v.v.>..>.v>>>>.....>.....v>.>..>.> +.vv.>>vv.v...v.v...>v>>>>v..v...>>......vv.vv...>v..vvv.vv.v...v.v>....>v.v.v.>....>...v..>v...>v>....v...>....>.>>.>..>>v>.v>v....>..vv.v. +v>.v.>v...vv.>.v.>.....>.v.vv.>>.>....>..v.v.v..v>v.v>vv.>>.>v>.>....v.>.>.>v..>.vv..vv....>.v.>..>vv.vv>>v>...>v>>>v>...>v.>v>.v>.v>.v>v.. +..>>>.vv.v..>.>..>....>...>>>.>..>>>v..>..v...v>v>.>.vv....v.v......v.>.>>>.v.v..vv.v..>.>..>>.>>...>.>>..v.vv..v>.>vv..v>.>vv.>..>.>..>... +..>.>...vvv.v.v..>.v.>>v.>v>>....>..>.>.v>>vv>.>>.v...>...vv>>>vv.v...>.vv..v..vv>..>v..>.>.>.>.>v>>.>..vvv>.>v....>v....v>>>............v. +v.vv.>..>vv...v.......>......>>>v.v>.....>.v>>.v.>..........>>.v.>.>..v>.v.v...>..v>.>>>>v>..v>v.>.>...>.>....vvv.....vv.v..>.......v>v>.>> +.>.vvv.>.>vvv...>>.>v.v...vv.v.v>...v..v>>v.v..v.>>vvv...v>>>.v...>..>v..v>>v.>v.>.v.v..v>v.>...vvv..>v......vv>>>>.>>.....v.>>>v.vv.>..v.> +.vv...>>>..vv..vvv....v>v.v>v>v.vv.>>vv.>vvv>..>...vvv...v.>.>...>...>........v.v>.v>>...v>...>>.>v.>...>.vvv>...v>..v...v.>v>>..>>..v.>v>. +.....>>.v....v..v>vv.>..v...>vvv>..>....v>..>.>..>v.>v....v>v...v...v..>...>>v.>>.vv..v..>.v..>.v.v>v>vv.>.>vvvv...>.v.v.v....>>v..vv.>>.>. +....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...>vvv>..v.v>v..>v..>v...>....vvvv.v>>v.>>v...>..v.vvv..>..>>v..v...>v>>vv.>>..vv..v..v>...v...v....v...v....>vv>>.vvvv>.v... +..vv..vvvv.vv...>.v>>.>v>>>>>.v.>..>.>.v.vv>>.>>....vvv>.>>.v.>.v.vv>v>v.>....>v.......>.>.>.vv..v.v>v.v...>..v.>..v>...v>v>>>......v>..>v. +>.>>.v.v.>v>v.v>.>vv..>>.vv.>>vv>....>.v.....v.>v..>>>.>.>..v>.>v...v...v.>..>.v>v>..vv>..v.....v.>.v>.>>....v...>.v.....v>vv.....>>>v.v>.v +.v>.....v...>.>...v>v.v..v.>v.v.>>v>.vvv>.>.v.vv.>v>v>v>v>>.vv..>>v.vv>.v>>.>vv..v>..vv.vvv.vvvv>.>.v.>.>.>vv>.>...v>.v>v...vv>v..v>v..>... +...>..v.......>v.v.v>v.....vvv...v..>>vvv>.>...>..>.v.v.>>.v.v.>.v..vvv..vv>v>v..>..v.>..>v.>.>...v>.vv.>>.>v.>..v>v>....>.>.vv..v>....vv.. +.vvvv.v.>.v..>.v.>v.v>>..vv...>>v.>>.>.>.>v.v.v.v>v....v..>v....>>.>v>v.....>.>..vv....>.vv...vvvv.vv.vv...vvv.>.v>v.>.v>..v.v>vv.>..>..... +>..v.v..>.>>.v>..>...>.>>.>>.>..>.>....>v.v>.>.v.....v>.v>.vv.v>...vv.>.vvv>>v>.>.v..>.>.v>v>.>..v..>.>......>>.......vv.>..>.v>vvvv..>vv.> +v....v.vv...>.v.v..>>.>....v>>........vv.>.>>...>.>...v..>.v>..>..>>v>....v.v..>..>v.vv.>.>>.v.>>.>vv>>.>v>.v>>>.v....>....>...v>>..v..v.v. +v.v.v...>>v...>>>.v.vv.vv.vv>>>.v.>...>>v.......>v.>vvv.>>.vv.......vv...v>..v>.>>.v..v>...>.v..vv.v>..>v...v.vv>.>>.v..>.v.>.>..>>.vv>...> +v..>vv.>v>.>v.>.>>>vvv>..v.>>>v>.>v....v.>v>.vvv>..v>....v..>>..v..vv.>...v.>.v......v.>.>.....vvv..>vv>.>...>.vv>....>>..v>..v.v..>>v..>v. +.....v.>>vv.v>>.>vv>.>..>...v>>..v>....>.v.>.>...v>..vv>v>..>..>.>......vv>.>.vv>.....v>...vv..>..>v.v.>.>.vv>.vv.vv>.vv.v>>>..>....>.>.>v. +.>v..v.vv..v.v.>v..>.v>>v>v.vvv>>...vvv.....vv..>.v>...>>>.v....v>>.>v>.v.vv>....>>>>..v.>.>.v.....v>>v..v....>..v....v>...>>v.>v>v...v.v.. +.>v.....v..>.v..>...v..v.>vv.vv.>.>v.>...>...v>...v.v.>..>v..>..>v.v..>.v.v>v.>.v..v......>...v.vvv.v>>v.>.v.vv..>>v..v>>.v.>>.v.v>>>....vv +...vv.>v.>..v>>..v.>.>vv.vv...>.....>v>.....v..v..v.v.>>..vv.>v.>..v........v.v..>>v.>v.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..>.>>>vv>v>>>.v....vvvvv.v..v>.v.>v>v>>..v..vv..v.vv>>v..>.>..>....>..>.>>.v>. +>>..>>...>..v>vv.>>>...vvvv....vv.v>.vv.>.v.vv>>..vv..>..>>>..>>..vv>>.>vv>>.>.>..>vv.>.>v..>>.>.v>....vv>v>..vvv.vv.>v.>v>>....vv.vvv...v> +..>>v>..>>.v>vv>....>..>>.v>vvv.vv..>.v>v..v.>>.vvv>.>.>v...>v.vvv.>.v.>v>v.>..>.v>>.>.>v..v..>v>>v>.v.>.>.v.>...vv...v.......vv.....>.v.>. +>..vv>>v...v>v.>vv>.v....v.vvv.>......>v.v>.vv>..>>>v....>>>.>...v>>>....>...v..>..v>vv..v>v...>vv>.v..v..v>.>.>.>..vv>>v..v>....>>..vv..>. +.>.>v>vvv.v..v.>v.>...v>.>v..>vv.>..v.>v>.v...v>.>>vv..........v>.v.vvv.>>>..v>vv.>>>v>..v....v..>..v.>>..>.>.v>v.v>.v>.v...v.>>.v....vv... +....>>.v..>.......>.v.v>>>vv>>..>v>v...>.v..v>.vv.v>>vvv....>vv>v>..vvv.>>>.v..>>.v.>.....>vv>>....v>vv>v..>.>...>.>>v......>..>v..v....vv. +.vv..>.>..>..v>...>v.vv.>..>v.>..v>v..vv>>>..vv..>vvv.....>...vv>.........v..>..v..>>.>>v.v...>>v>v>..v>>.v>.v..>v.vv>vvv>>>..v>.vv..>>.v.> +.>vv.v.v..>.>...>..>v>..>...v.>...>vvv.>....v...>..vv...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>vv.....>..>..>>......v.v.>v.....>v.v...vv.v.>v>>>.....vv.>>v>>......v..v>v..vv>>v....v..>..>v>>>.v..>.>...v...vv>vv>v...>.v>. +v.>>v.vvv.vv.vv.>.>.v.v>v.v>..v>v.>>>..>v>.v....>v....>>.>>..v.vv...v.v....>.>..>........vv.v.>..>>.v.v>...v>v...vv.v>>.>v>>.>>vv>.v..>v>vv +v.>v.>v>.vvv.>v..>..>>>...v.>.v...v.>>.>..>>.v.>v..>.vv.>....>>vv>....>..>>vv>>....>v>.v..>.v>.>...v..v..>v>>>..v...>...>.>v>.>v.>.>.>.>.vv +vvv.>>v>>v>.>..v>v>..v>v.>>v.v...v..v.>vv...vv.>.v>>>vv>.v.>v..v>>.>>vv..v....>.>v.>>v.>.>....>>.>.v.vv>.vvv..v...>..vv..v......>vv.>>>v>.. +.>.>.vvv....>v>>.>.v.vv.v>>.>>...>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...>vv....v..>.>....>.>v.v.v.v>..>.>.>.v.>>.v..v.>>v.vv>>>v>.v..v...v.v>vv>>vvvv>.>...>v.v.v..>>>.v>>.v.v +.>...v>v>>..v.>>.>v.vv>.vvv>.v....v>..v.>.vv..>.>>.>.>v>...v.>v>..vv>.vvvv>.>....>..vv>.v.v..>v..v>...>...vvv.v>>>>>>..>.>.>...>..vv.>.v..v +v...>..>.>vv..>.>v..v.>>.v>>>.v>>...>.....vvv.v.>v..>..v..v...vvv.vv>..v>.>.vv>v...vv>>>v...v.>v....v.v..>..>vv.>v>vv.vv>>>..>v.>vvv.>v.>.. +>v...v...>>.v.>.>>.v>>.vvv>>v>vv..>>..v>>.>..>.>v>>>v...v..>.>v..>....vv..>>.>>......>v>>>..v..v..>>>.>....>......v..>>v>>.>>...vv.v.>vv>v. +>.....v.....>v>.>.....>v.v.>.v>vv..>.>>....vv>..>v..v>.v...>.v.>v>v.>vvv..v>>v..>..v>>.>...>.>>.>..>.vv>>.vv..>>v>>.>.v.v.v.>vvv>v>>v>vv.v> +v.>..>v.v>v.......>v......v...v>.vv..v>...>.>.....v.>..>.>....>...v.v>v.v.....>....vvv>..>v.v.>vvv.v.v.v>>>..>v>.>.v>..v.v>.>vv.>.>.v.vvv.v +v...>.vv>.v..>.v>.....>>vv>.v..>>>v.>>..>.....>v...>>..v.>.vv.>..>..>v.>>>>>vvv....vv.>v..v>..>.v>..v.>...>v..v.>..>v.>.vv.>vv....>>v.vvv>. +>..>>...>.>.vv>..>v>..v..v>.v.>.>vv.>v>.>>..vv.>..vv.v>vv>v>.vv..>>>..>v...>.>v>v>>>.........>>>...vv.>.....v.vv>.>.vv>.....v.v..>...v.vv.. +v..>>..vv..v..>...>>.>>>..>..>.>v..>..>.>.vv.>>...>.>.>v>.>..>>.vv.>..>.vvv>>....>>>>....>v.>>>>.>>..v.v.>vv..>..v..>.vv>v....>vvvvv>v....> +v...v.>v>.v...>>v.>.v>>.v.v...v.>..>..>>>...v.......v>>>>>.>.v.v..>...v.>v>v.v....v....vv>vv.>.>v>vv...v..vv.v.>>v..>.v.v.v...vv..v.>v>.>v. +.>v>.vv.v.>.>.>>v.>>...v.vvv.v>...>>.>>.>.v...v....>..vvv.>....v.vv.>..v...>>..>...vv.>.>v>v..>>>.v.....>.....vv.v..>.>>>v.vv>vv.>......>.> diff --git a/2021/25/src/main.rs b/2021/25/src/main.rs new file mode 100644 index 0000000..be24a57 --- /dev/null +++ b/2021/25/src/main.rs @@ -0,0 +1,120 @@ +use std::fmt::{Formatter, Display}; + + +#[derive(Debug, PartialEq, Clone)] +enum Place { + Empty, + East, + South +} + +impl Display for Place { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + match self { + Place::Empty => write!(f, "."), + Place::East => write!(f, ">"), + Place::South => write!(f, "v") + } + } +} + +impl Place { + fn from_char(c: char) -> Place { + match c { + '.' => Place::Empty, + '>' => Place::East, + 'v' => Place::South, + _ => panic!("Unknown char: {}", c) + } + } +} + +struct Board(Vec>); + +impl Board { + fn push(&mut self, row: Vec) { + self.0.push(row); + } + + fn tick(&mut self) -> bool { + let mut moved = false; + let mut new_board = self.0.clone(); + for (y, row) in self.0.iter().enumerate() { + for (x, place) in row.iter().enumerate() { + match place { + Place::Empty => (), + Place::East => { + if x + 1 < row.len() && self.0[y][x + 1] == Place::Empty { + new_board[y][x + 1] = Place::East; + new_board[y][x] = Place::Empty; + moved = true; + } else if x + 1 == row.len() && self.0[y][0] == Place::Empty { + new_board[y][0] = Place::East; + new_board[y][x] = Place::Empty; + moved = true; + } + }, + Place::South => () + } + } + } + self.0 = new_board; + new_board = self.0.clone(); + for (y, row) in self.0.iter().enumerate() { + for (x, place) in row.iter().enumerate() { + match place { + Place::Empty => (), + Place::East => (), + Place::South => { + if y + 1 < self.0.len() && self.0[y + 1][x] == Place::Empty { + new_board[y + 1][x] = Place::South; + new_board[y][x] = Place::Empty; + moved = true; + } else if y + 1 == self.0.len() && self.0[0][x] == Place::Empty { + new_board[0][x] = Place::South; + new_board[y][x] = Place::Empty; + moved = true; + } + } + } + } + } + self.0 = new_board; + moved + } +} + +impl Display for Board { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + for row in &self.0 { + for place in row { + write!(f, "{}", place)?; + } + writeln!(f)?; + } + Ok(()) + } +} + +fn main() { + let input = std::fs::read_to_string("input").unwrap(); + let mut places = Board(Vec::new()); + let lines = input.lines(); + for line in lines { + let mut row = Vec::new(); + for c in line.chars() { + row.push(Place::from_char(c)); + } + places.push(row); + } + println!("{}", places); + println!(""); + let mut sum = 0; + while places.tick() { + println!("{}", places); + println!(""); + sum += 1; + println!("{sum}\n"); + } + println!("\n{}", sum + 1); +} \ No newline at end of file diff --git a/2021/25/testinput b/2021/25/testinput new file mode 100644 index 0000000..73a37cc --- /dev/null +++ b/2021/25/testinput @@ -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.> \ No newline at end of file diff --git a/2022/.gitignore b/2022/.gitignore new file mode 100644 index 0000000..795c63d --- /dev/null +++ b/2022/.gitignore @@ -0,0 +1 @@ +*/rust/target \ No newline at end of file diff --git a/2022/.vscode/settings.json b/2022/.vscode/settings.json new file mode 100644 index 0000000..8675ad5 --- /dev/null +++ b/2022/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "deno.enable": true, + "deno.unstable": true +} \ No newline at end of file diff --git a/2022/1/README.md b/2022/1/README.md new file mode 100644 index 0000000..2c9f3f1 --- /dev/null +++ b/2022/1/README.md @@ -0,0 +1,36 @@ +# Day 1: Calorie Counting + +The jungle must be too overgrown and difficult to navigate in vehicles or access from the air; the Elves' expedition traditionally goes on foot. As your boats approach land, the Elves begin taking inventory of their supplies. One important consideration is food - in particular, the number of Calories each Elf is carrying (your puzzle input). + +The Elves take turns writing down the number of Calories contained by the various meals, snacks, rations, etc. that they've brought with them, one item per line. Each Elf separates their own inventory from the previous Elf's inventory (if any) by a blank line. + +For example, suppose the Elves finish writing their items' Calories and end up with the following list: + +``` +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 +``` + +This list represents the Calories of the food carried by five Elves: + +- The first Elf is carrying food with `1000`, `2000`, and `3000` Calories, a total of `6000` Calories. +- The second Elf is carrying one food item with `4000` Calories. +- The third Elf is carrying food with `5000` and `6000` Calories, a total of 11000 Calories. +- The fourth Elf is carrying food with `7000`, `8000`, and `9000` Calories, a total of `24000` Calories. +- The fifth Elf is carrying one food item with `10000` Calories. + +In case the Elves get hungry and need extra snacks, they need to know which Elf to ask: they'd like to know how many Calories are being carried by the Elf carrying the **most** Calories. In the example above, this is `24000` (carried by the fourth Elf). + +Find the Elf carrying the most Calories. **How many total Calories is that Elf carrying?** diff --git a/2022/1/input b/2022/1/input new file mode 100644 index 0000000..43f433f --- /dev/null +++ b/2022/1/input @@ -0,0 +1,2243 @@ +3427 +3273 +5615 +5943 +3125 +4245 +4194 +3243 +4283 +1790 +5355 +4239 +5541 + +3850 +5294 +5393 +2490 +3231 +2743 +2016 +2418 +2304 +5673 +3035 +5292 +2112 +2630 +2305 + +2325 +2002 +3402 +4756 +1662 +1133 +5273 +6397 +2977 +4011 +3594 +4441 +3907 +1503 + +7598 +6971 +6979 +3873 +1394 +8399 +1321 +2304 +2570 +6679 + +15324 +3365 +23808 + +5489 +3526 +3125 +8371 +1928 +8191 +7267 +10728 + +5243 +2203 +7331 +8049 +4951 +3743 +2255 +4112 +3077 +2441 +4678 + +12353 +2251 +12157 +13656 +10655 +7525 + +3383 +4183 +3293 +5473 +4898 +1441 +3786 +4002 +2179 +2439 +5530 +3966 +6273 +3150 + +3320 +2694 +2229 +1394 +4568 +3160 +4986 +2487 +3412 +1030 +3717 +1460 +1140 +1314 +5816 + +15303 +36095 + +14345 +5208 +2253 +19532 + +5082 +6544 +3563 +6050 +3750 +1155 +2090 +3661 +3600 +5528 +6506 +1795 +4901 + +1156 +1867 +2025 +5434 +1546 +6052 +4412 +7203 +4622 +7098 +4727 + +4423 +1829 +4761 +4779 +3234 +4869 +3567 +6928 +4181 +5390 +5938 + +3100 +6087 +9235 +10228 +2082 +5472 +11382 + +8389 +15131 +12057 +5034 +9419 + +2192 +1695 +3233 +2245 +4328 +6275 +1811 +4345 +2760 +3205 +1138 +2795 +3876 +1041 + +1302 +3509 +6074 +1793 +5808 +5364 +3802 +2048 +6042 +4913 +5983 +1189 +3134 +3763 +2573 + +1003 +8411 +2571 +2555 +7555 +8096 +1441 +5600 +5104 +6311 + +5345 +3329 +5616 +3250 +4321 +2068 +1978 +3719 +4512 +5099 +4694 +1566 +2621 +1613 + +11021 +6101 +9858 +3142 +9907 +1578 +8582 + +3182 +7695 +4419 +4036 +5846 +3899 +6104 +4495 +7382 +3471 + +6844 +3290 +10505 +7855 +1494 +5963 + +3609 +4755 +4063 +1480 +3201 +4576 +1627 +1255 +3699 +3929 +5533 +4807 +5890 +2270 + +3789 +7045 +8784 +8006 +4583 +7726 +3993 +1472 +1578 +2046 + +2474 +5953 +2050 +4758 +5265 +5075 +4338 +1340 +1301 +5996 +1225 +1794 +4778 +1354 +3819 + +9619 +10877 +8094 +8845 +11275 + +1986 +2142 +7561 +5350 +7605 +6766 +4713 +1016 +5697 +3179 +1696 + +3428 +5575 +5301 +4356 +5065 +2010 +1382 +3466 +3233 +1188 +1999 +3228 +6153 +4496 + +1354 +5681 +11066 +1211 +8399 +12040 +11181 + +3408 +1237 +2163 +5645 +4712 +1349 +4124 +2357 +5443 +4887 +5582 +3037 +3764 +3472 +5861 + +16746 +19715 + +18742 +18810 +6457 +8003 + +3720 +2473 +3156 +3758 +2095 +1872 +1767 +3754 +5011 +3188 +2691 +3555 +4826 +2148 +2012 + +8200 +5372 +6960 +5423 +2383 +2252 +6375 +3558 +1643 + +4653 +3017 +1840 +4479 +6043 +4533 +5374 +5708 +5026 +2557 +2984 +2175 +3797 +1367 +2809 + +1439 +2943 +2091 +6539 +5602 +8757 +2165 +2013 +8140 +4465 + +1216 +3681 +6650 +3628 +5812 +1127 +3023 +4629 +6060 +3294 +4414 +6013 +3311 + +5454 +10288 +4812 +7823 +10332 +2413 +1891 + +46279 + +9578 +8113 +19699 +10360 + +1604 +6410 +6017 +7080 +6023 +3892 +5152 +5250 +2799 +3333 +3451 +3430 + +9888 +6658 +4837 +9174 +9517 +1927 +4135 +4802 + +10514 +1492 +1142 +10574 +7578 +6753 +4250 +7526 + +4997 +6345 +5735 +2312 +5652 +6281 +1808 +5840 +6222 +4264 +6164 +3923 +2953 +4549 + +1751 +7956 +7499 +4659 +3770 +3266 +3921 +2854 + +1750 +6872 +3010 +7148 +1621 +3709 +3454 +5347 +7743 +1274 + +4212 +7252 +9341 +1973 +11385 +5895 +2077 + +6658 +1338 +4893 +2578 +9604 +2595 +3414 +1080 +6270 + +24007 +4451 + +12972 +11908 +9381 +1048 +7389 +8138 + +2266 +2599 +4165 +4784 +4626 +4361 +3710 +2182 +3845 +4487 +2023 +2986 +1893 +5845 +5497 + +6805 +5697 +1281 +6524 +2711 +2519 +2117 +4087 +5690 +4330 +1135 +4761 + +5844 +3385 +1138 +1569 +1517 +1556 +9548 +5483 +3219 + +4644 +2601 +5562 +3819 +1254 +5815 +5846 +5382 +3150 +4171 +5534 +6094 +4472 +2061 +4076 + +2878 +1410 +9640 +5071 +3324 +8293 +9940 +3408 + +17130 +10210 +10359 +4906 + +2544 +5660 +6090 +3828 +7403 +2801 +8923 +5277 +8099 + +3795 +1966 +4800 +3767 +4208 +3259 +8457 +4220 +8519 + +1605 +10471 + +5185 +4592 +4389 +3287 +2304 +1856 +4737 +2879 +6366 +6552 +3801 +4487 +3732 + +6012 +5767 +6959 +8554 +8079 +8259 +4657 +5856 + +14046 +3590 +12095 + +2973 +3878 +3645 +4276 +2320 +2886 +5517 +6727 +5742 +1098 +3216 +2442 +3818 + +1273 +4150 +3080 +3346 +2788 +1989 +3112 +4219 +3596 +3513 +4205 +6202 +4782 +2784 + +5051 +2764 +3741 +6410 +1016 +7444 +2184 +3062 +5225 +1274 +6015 +1728 + +2377 +8151 +5516 +5535 +4053 +5950 +10235 + +7837 +2220 +5837 +12251 +16188 + +4297 +16215 + +1978 +1710 +1777 +4212 +6858 +3883 +6775 +2192 +1175 +5995 +1271 +2740 +2628 + +4320 +4494 +5177 +1999 +5490 +1489 +4324 +5227 +1450 +5883 +2319 +4774 +4458 +2351 + +3448 +6913 +8451 +6462 +5866 +11217 +2186 + +4201 +4589 +7100 +4364 +7012 +2153 +7302 +5890 +1686 +6211 +3490 + +15256 +11330 +2576 +16295 +12696 + +3284 +8133 +4210 +9105 +7168 +6026 + +11776 +6637 + +4573 +6043 +1000 +6736 +4118 +5208 +2927 +7477 +5529 +4854 +3522 + +5080 +8530 +6703 +6196 +9315 +5603 +7705 +4264 +4226 + +2260 +9738 +5010 +1686 +1937 +8207 + +25668 +27349 + +2869 +4713 +4882 +2679 +7961 +3163 +5782 +6503 +4208 +2063 + +6247 +4463 +2240 +7150 +2727 +7441 +3721 +7962 +2128 +4317 +1091 + +4963 +1111 +5113 +3820 +3030 +2167 +2925 +1805 +1441 +6450 +1386 +2862 +1594 + +7176 +12022 +1849 +4085 +4515 +10053 +11249 + +18317 +1781 +18494 + +4370 +19502 +2229 +19624 + +3242 +16141 +5070 +19552 + +4082 +7003 +9394 +4500 +9162 +1991 +3555 +4769 + +3386 +5867 +8192 +6543 +1930 +10974 +1136 + +1004 +7929 +9658 +7020 +7231 +9331 +1749 +2973 +6859 + +6997 +1865 +4744 +5725 +8391 +8664 +1142 + +19299 +3449 +16386 +13658 + +1825 +1988 +5454 +6369 +7466 +4535 +5033 +2624 +4671 +1715 +1130 +2785 + +6349 +3298 +15373 +3765 +8607 + +1467 +1151 +5692 +5349 +5878 +2378 +1060 +3500 +3794 +5979 +2498 +5792 +1346 +3951 +3002 + +6298 +7169 +2292 +5334 +3964 +1367 +4002 +5096 +2232 +2396 +2399 +3622 + +4478 +13270 +6750 +14796 +2444 + +28084 +22563 + +10371 +10158 +8358 +8893 +2048 +10170 +1975 +5860 + +2826 +5313 +6768 +5757 +5251 +7693 +2295 +3278 +4889 +6677 +2869 + +4648 +4125 +5271 +2075 +5706 +6365 +2815 +6123 +3621 +2536 +5841 +2819 +3421 + +19400 +15923 +4719 +19889 + +15442 +24965 +20121 + +12765 +6225 +9594 +3324 +10745 + +9550 + +3573 +6393 +7665 +8995 +4214 +7717 +1278 + +8653 +5104 +3346 +4537 +1870 +8001 +2938 +4618 +6738 +2912 + +3315 +1537 +10677 +9986 +6898 +9306 +7037 +1489 + +6055 +5329 +1855 +2859 +6953 +2772 +5646 +4659 +1638 +4294 +2050 +5063 + +66765 + +3712 +3030 +8171 +2898 +8367 +10670 +4897 + +5012 +5099 +4827 +3947 +6708 +1704 +3714 +2225 +4425 +2528 +2396 +1261 + +5626 +2971 +12919 +16816 + +4547 +12905 +11292 +18931 + +3530 +9875 +4672 +3897 +8547 +3293 +4835 + +43142 + +24258 +9997 +21496 + +1208 +5598 +1340 +3351 +3856 +4368 +2935 +5296 +3972 +3060 +2599 +1795 +5210 +5403 +3473 + +4457 +3498 +3815 +1380 +2356 +3167 +5418 +5314 +1344 +1837 +4187 +2184 +5629 +4746 +1087 + +21757 +8610 +4689 + +11777 +5837 + +12118 +5293 +13465 +8537 +7762 +3782 + +6183 +15013 +7399 +14944 +6213 + +43907 + +8307 +5251 +3694 +4573 +2578 +3687 +3885 +1965 +6973 +6266 + +27104 + +1946 +3232 +2101 +9268 +9634 +4100 +1878 +9129 +4192 + +9175 +11691 +4274 +8684 +8889 +4557 +7587 + +4279 +8296 +4685 +2930 +8289 +6175 +4472 +2901 +2936 +7176 + +11323 +9385 +11725 +9793 +8426 +6393 +6004 + +3672 +4161 +3337 +1929 +3171 +2371 +3786 +7876 +4149 +4925 +4705 + +28965 +32051 + +2398 +1799 +5037 +4165 +2010 +1355 +1575 +5139 +6084 +4016 +5215 +6103 +3298 +4534 +4615 + +6660 +7961 +8168 +3330 +6912 +6116 +7870 +9037 +1571 + +6421 +3027 +5685 +3979 +2831 +5353 +2478 +1044 +6811 +7667 +2964 + +3919 +10974 +2860 +4617 +10693 + +5548 +5360 +1319 +5437 +1422 +3565 +4957 +4813 +1684 +3627 +3082 +3486 +6118 +1841 +4263 + +1874 +4344 +6124 +11147 + +6594 +6216 +7338 +3533 +6738 +3045 +1244 +6486 +3200 +2511 + +1139 +21415 +25857 + +16318 +1430 +3369 +9263 +9929 + +5928 +15789 +11887 +12028 +8417 + +6149 +1642 +2773 +4464 +2136 +3018 +3822 +3430 +1317 +7242 +3908 +4536 + +1425 +5550 +4635 +2039 +1290 +2618 +3862 +2107 +4921 +2991 +2703 +1932 +2568 +2266 +5553 + +5660 +8736 +4457 +5190 +1149 +9538 +8720 +6090 +3093 + +13268 +25486 +19311 + +2275 +5258 +6428 +2407 +3893 +1339 +6016 +5075 +3342 +1951 +3939 +5464 +2310 +2111 + +9213 +4141 +13988 + +20253 +20757 +12387 + +6720 +9453 +11786 +5246 +8519 +1807 +4846 + +11442 +6565 +3556 +4281 +13793 + +11152 +7384 +3135 +7831 +9622 +2549 + +1687 +3983 +4666 +5010 +7569 +8614 +3537 +5490 +5002 +5659 + +5692 +2560 +6875 +3031 +3324 +5731 +6464 +9583 +3505 + +1814 +1393 +3673 +5469 +6392 +1052 +2787 +5115 +2666 +2590 +6565 +1842 +2506 + +5592 +3509 +5060 +4589 +2619 +3283 +4145 +1590 +6079 +1312 +5693 +5182 +5071 +5476 +2187 + +5848 +11351 +8303 +11454 +7250 +9222 +9673 + +1348 +4372 +5362 +4031 +3730 +4094 +5193 +1949 +3386 +1840 +1414 +2665 +5000 +1427 +2756 + +5415 +4977 +4836 +5095 +4250 +4958 +5446 +1788 +3187 +2285 +5023 +4540 +6505 +6193 + +9926 +5929 +10070 +9154 +15694 + +5424 +2275 +2556 +7747 +8450 +2304 +8512 +5397 +3831 + +5193 +2733 +5044 +6255 +9617 +7568 +2363 +7297 +8281 + +3912 +8171 +5412 +6963 +2854 +5319 +5093 +3672 +7422 +8003 + +1986 +3826 +3202 +3431 +1361 +1949 +2237 +6455 +7354 +2587 +6648 +5011 + +26126 +35104 + +2811 +3929 +2049 +6213 +6242 +6074 +5336 +1684 +2556 +4831 +2963 +3482 +4728 +3548 + +5652 +5134 +5168 +3953 +7858 +2654 +6512 +2084 +4173 +5224 +3278 + +3599 +5356 +1114 +4191 +4473 +5066 +5490 +3564 +5826 +1516 +4392 +5289 +1281 +4404 +2274 + +58222 + +2493 +5894 +3528 +6543 +6011 +5090 +3001 +3783 +5710 +3351 +3936 + +4894 +2255 +1579 +3849 +1090 +4218 +4196 +3818 +3701 +6652 +6393 +5254 +3891 + +1041 +6701 +8442 +4691 +1054 +9791 + +63207 + +4085 +3685 +3858 +6123 +2192 +7228 +2276 +4588 +2134 +5990 + +1857 +18111 +17100 +12276 + +2353 +5464 +5442 +5230 +4412 +3189 +5513 +5813 +2459 +4570 +3493 +1753 +2059 +5804 +2150 + +9941 +13582 +3983 +5035 +7121 +8255 + +6637 +2409 +5469 +2433 +6675 +5290 +4965 +2161 +4358 +2845 +3302 + +3888 +1312 +7084 +4568 +14787 + +16704 +17915 +12348 +10556 + +3055 +2579 +3744 +3287 +5974 +4817 +2966 +5913 +3291 +2043 +4534 +1323 +5913 +2638 +4941 + +6305 +4244 +10277 +6254 +13667 +4572 + +1538 +13957 +13223 + +5856 +1394 +1329 +1395 +5874 +1899 +1884 +6484 +2784 +4268 +1631 +1822 +2463 +3880 + +14105 +14883 +18198 + +3032 +3784 +5643 +3773 +5888 +1178 +3793 +5230 +4118 +2181 +4977 +5507 +2111 +2718 + +2275 +5842 +1675 +6194 +5207 +1151 +3795 +1214 +1684 +2885 +4067 +3938 +4495 +4713 + +8752 +7608 +9819 +10438 +8672 +9792 +3246 +10448 + +1844 +14438 +13886 +14646 +2801 + +4032 +2553 +2327 +2321 +5334 +4677 +5466 +5474 +5194 +2828 +6113 +2979 +4755 +5295 + +3164 +4556 +7645 +2198 +2053 +1154 +1976 +1231 +4290 +4049 +5697 + +3635 +1307 +2316 +5508 +6603 +5483 +6365 +4073 +1325 +4043 +1807 +1871 +2056 + +6233 +5552 +8415 +2110 +8085 +9293 +6374 +6406 +5730 + +5077 +6068 +9548 +6279 +1000 +3764 +3649 +4720 +3278 + +5222 +1356 +4185 +2401 +1947 +4042 +5903 +4500 +3817 +6871 +4859 +5715 +4061 + +15888 +8533 +18355 + +65924 + +9638 +2232 +5209 + +14127 +21496 +6679 + +4269 +5055 +5129 +3308 +6977 +5175 +8822 +2381 + +57210 + +5510 +1878 +3933 +4081 +5101 +3974 +2211 +2310 +4652 +3113 +3414 +3844 +1637 +3225 +5057 + +12780 +11976 +6407 +3161 +11266 +7404 + +5178 +3541 +3449 +2443 +3099 +5232 +5838 +1724 +5830 +1147 +2092 +5034 +1235 +2502 +5532 + +12966 +12188 +2554 +13972 + +6587 +3279 +1462 +1804 +1398 +1172 +7309 +7422 +6432 +1024 +3065 +4228 + +2694 +7331 +14584 +9982 + +7038 +6957 +4701 +7704 +2598 +5320 +5967 +6921 +1647 + +3296 +2784 +5532 +5546 +5876 +5368 +1054 +5058 +4827 +1357 +6359 +6830 + +4292 +3508 +2337 +4779 +6114 +4836 +5981 +3416 +6699 +3472 +5791 +3957 +6943 + +3478 +4225 +3052 +4254 +3454 +4037 +1586 +5076 +2839 +1992 +4261 +3288 +1343 +2341 +1551 + +17502 +4858 +18898 +5672 + +8686 +2583 +1331 +3358 +6292 +2778 +5709 +1961 +6840 +4022 + +2762 +7622 +7131 +7486 +11995 +10403 +7014 + +3729 +7653 +2913 +4205 +5248 +6521 +5522 +2238 +6185 +6906 +6982 + +13279 +15590 +6519 +5881 +10256 + +11856 +7565 +1021 +2750 +4574 + +6775 +1059 +1006 +4734 +8301 +10502 +4313 + +1474 +3139 +3822 +5821 +3711 +3319 +5126 +3229 +2014 +3850 +2412 +2025 +5909 +1183 +1785 + +2726 +6526 +6606 +6153 +7205 +1503 +5204 +6244 +5856 +3962 +2148 +4222 + +4715 +1689 +4771 +2137 +3780 +1441 +5840 +1161 +5664 +4784 +2380 +1710 +1514 +1631 +1383 + +17682 +10199 + +11639 +6724 +3935 +2520 +2078 +1975 +8774 + +2252 +1541 +5525 +3020 +5282 +4457 +5951 +6672 +7622 +4374 +6671 + +5651 +2720 +1633 +2704 +5113 +1968 +2943 +1763 +4803 +3768 +2712 +1141 +6006 +4546 +4336 + +9165 +8307 +1687 +4532 +4194 +4442 +6385 +5555 + +3820 +4280 +1133 +3789 +5471 +1788 +1694 +5654 +4802 +4218 +2428 +2933 +2219 +3567 +1743 + +2881 +4847 +1363 +5396 +1564 +5633 +4521 +3209 +2555 +5482 +2613 +4118 +5167 +3873 +2554 + +7668 +5845 +11661 +6560 +2189 +5230 +1923 + +29880 +25227 + +4503 +2215 +4600 +8892 +3104 +1325 +2103 +8983 +4061 + +4784 +9543 +16484 +18339 + +1331 +1544 +1291 +3863 +1005 +2002 +2907 +3014 +5819 +1397 +5856 +2182 +6055 +4812 +4226 + +5402 +3893 +4333 +4381 +5053 +3248 +1537 +3147 +2459 +3383 +2214 +5900 +5862 +2002 +1870 diff --git a/2022/1/part1.ts b/2022/1/part1.ts new file mode 100644 index 0000000..3bb17a0 --- /dev/null +++ b/2022/1/part1.ts @@ -0,0 +1,24 @@ + +const text = await Deno.readTextFile("./input"); +const lines = text.split("\n"); + +let acc = 0; +let max = 0; +for(const line of lines) { + if(line === "") { + if(acc > max) { + max = acc; + } + console.log(acc); + acc = 0; + continue; + } + acc += parseInt(line); + if(isNaN(acc)) { + console.log("'" + line + "'"); + break; + } +} + +console.log(); +console.log("max", max); \ No newline at end of file diff --git a/2022/1/part2.ts b/2022/1/part2.ts new file mode 100644 index 0000000..cfaed9f --- /dev/null +++ b/2022/1/part2.ts @@ -0,0 +1,22 @@ + +const text = await Deno.readTextFile("./input"); +const lines = text.split("\n"); + +let values: number[] = []; +let acc = 0; +for(const line of lines) { + if(line === "") { + values.push(acc); + acc = 0; + continue; + } + acc += parseInt(line); + if(isNaN(acc)) { + console.log("'" + line + "'"); + break; + } +} + +values.sort((a, b) => b - a); +console.log(values.slice(0, 3)); +console.log(values.slice(0, 3).reduce((a,b) => a+b,0)); \ No newline at end of file diff --git a/2022/2/input.txt b/2022/2/input.txt new file mode 100644 index 0000000..d1a0334 --- /dev/null +++ b/2022/2/input.txt @@ -0,0 +1,2500 @@ +B X +B Z +B Z +A Y +B X +A Y +C Y +A Y +C X +B X +A Y +B Z +A Y +A X +B X +A Y +A Y +B Y +A Y +A Y +A Y +B Y +C Y +A Y +A Y +C X +B Z +B Z +C Z +B Z +A Y +A Y +B Z +A Y +B X +A Y +A Y +A Y +C Z +A Y +C Y +B X +A Y +A Y +A Y +B X +A X +B Y +B Z +A Y +A Y +A Y +B Z +A Y +A Y +B Y +B X +C Y +B Z +C Z +A Y +C X +B Z +A Z +C X +A Y +A Y +A Z +B Z +A Y +A Y +B Y +B Z +A Y +A Y +C X +B X +A Y +B Z +A Y +B Y +B Y +A Y +B Y +B Z +B X +B Y +B X +B Z +B Z +A Y +A Y +A Z +A X +A Y +B Z +A Y +B X +A X +A Y +B X +A X +A Z +B Z +A Y +A Y +A Y +B Z +A Y +B X +A Y +A Y +B Z +B Y +A X +C Y +C Y +A Y +B X +B X +B Z +B Z +B Y +B Y +B Z +B Z +B X +B Z +B Z +B Z +A Y +A Y +B Z +B Z +B X +A Y +C Z +B Z +B X +B Z +A X +A Y +B X +B X +A Y +B X +B Z +B Z +A Z +B Y +A Y +B X +A Y +C Y +B Y +A Y +A Y +B Y +B X +A Y +B X +B Z +A Y +B Z +B X +B X +A Y +A Y +B Z +A Z +B Z +C Z +B Z +C X +A Y +A Y +A Y +A Y +A Y +A Z +B Z +B Y +C Y +A X +C Y +A Y +A X +B Z +A Y +C Z +A Y +A Y +A Z +C Y +C Y +A Y +A Y +A Y +B Z +B Z +B X +B X +B Y +A Y +A X +B Z +B X +B Z +A Y +B Z +A X +B Z +A Y +A Y +B Z +A X +B Y +A Y +A Y +A Y +B X +A Y +C Z +B Y +B X +A Y +B Z +A Y +A Y +A Y +B Z +A Z +C Y +A Y +A Y +B Z +A Y +A Y +A Y +B Z +A Z +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +B X +A Y +C Z +B Z +A Y +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +B Z +A Z +A Y +A Y +C Y +A Y +A Y +A Y +B Z +A Y +A Z +B Z +C Y +B Y +B Z +B Z +C X +A Y +A X +B Y +A Y +B Z +A X +B Y +C Y +B Z +A Y +A Y +B X +A Y +B Z +B Z +B X +B Z +A Y +A Y +A Y +A Y +A Y +A Y +B Y +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +A Y +A Y +A Y +B Y +B Y +A Y +A Z +A Y +A Y +A Y +B X +B Z +A X +A Z +A Y +B X +A Z +A Y +B X +A X +B X +A Y +A Y +B X +B X +A Y +B X +A Y +A Y +B Y +B Z +A Y +A Y +B Z +C X +B X +B Z +B Z +A Y +A X +A Y +A Y +C Y +A Y +B Z +C Y +C Y +A Y +A Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B Y +B Z +A Y +B Z +B X +C Y +B Z +B X +B Z +A Y +A Y +A Z +A Y +C Y +B Z +A Y +A Y +B Y +B Z +B Z +A X +A Y +B Z +A Y +B X +A Y +A Y +B Z +B X +B Z +A Y +A Y +B Y +B Z +B X +A Y +B X +A Y +A Y +A Y +A Y +A Y +B Z +A Y +B Y +A Z +B X +B Z +B X +A Y +B X +A Y +B Y +B Y +A Y +C Z +C Y +A Y +B Z +B X +A Y +A Y +A Y +A Y +B Y +B Z +B Z +A Y +A Y +A Y +A Y +B X +A Y +B Y +B Z +A Y +B Z +B Z +B Z +A Y +B Z +B Z +B X +B Z +A Y +B Z +A Y +B X +B Z +A Y +A Y +A Y +C Y +B Z +C Z +A Y +B Z +C Y +A Y +A Y +A Y +B Z +A Y +A Y +B X +B X +A X +A Y +A Y +B X +B X +A X +A Y +A Y +A X +B X +B Y +A Y +A Y +B X +B Z +B X +A Y +B X +B Y +A Y +B Y +B X +A Z +A Y +A Y +B X +A X +A Z +B X +A Y +A X +B X +A Y +A Y +A Y +A Y +A Y +B Y +A Y +B X +B Y +B Z +B Y +A Y +A Y +A Y +A Y +B Y +A Y +A X +B Y +A Y +B Z +A Y +A Z +A Y +A Y +A Y +C Z +A Y +A Y +B X +B X +C Z +A Y +B Z +A X +B X +A Y +B Z +A Y +B Z +A Y +A Y +B Z +A X +A X +B X +B Y +B Z +B Z +C Z +A Y +A X +A Y +C X +A Y +B X +B X +B Z +A Y +A Z +A Y +C Z +B Z +B Y +B Z +C Y +C X +A Y +B X +B Z +A Y +B X +B Y +A Y +A Y +A Y +A Y +B Z +C Y +B Y +C X +A Y +A Y +B Z +C Y +B Z +A Y +A X +A Y +A Y +A Y +A Y +B X +C Y +A Y +A Y +B X +A Y +B X +B Y +C Z +A Y +A Y +A Y +A Y +B Z +B X +C Y +B X +A Y +A Z +C Y +A X +A Y +B Z +B Z +A Y +A Y +C Y +A Y +B X +C Z +B Z +A X +A Y +A Y +B Z +B Z +A Y +B X +B X +B X +A Y +B X +B Z +A Y +A Y +A Y +A Y +C Y +A Y +C Z +A X +B Z +B X +A Y +B X +A Y +B Y +A Y +A Z +A Y +A Y +B Z +B Y +B X +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +C Z +B Z +B X +A Y +A Z +B Y +A Y +A Y +B Y +A Y +B Y +B X +A Y +A Z +A Y +A Y +A Y +A Y +A Z +A Y +B Z +A Y +A Y +B Z +B Z +A Y +C Z +B X +A Y +C Y +B X +A Y +B X +B Z +B Z +A Y +A Y +A Y +A X +B X +B X +A Y +B Y +B Y +A Y +A X +A Y +B Z +C Y +A Y +C Z +B Z +C Y +B X +A Z +A Y +A Y +A Y +A Y +C X +B X +B X +A Z +B Y +A Y +A Y +B X +A Y +A Y +A X +B X +C Z +B X +C Y +A X +B X +C Y +C X +A Y +A Y +B Y +C Y +A Y +B X +B Z +A X +A Y +B X +B Z +B Z +B X +B Z +B Y +A Y +A Y +A Y +A Y +A Y +A Z +B Y +A X +B X +C Y +A Y +B Y +A Y +B X +A Y +A Y +A Y +A Y +A Y +A Y +B Z +B Z +A Y +A Y +A Y +C Z +A Y +A Y +A Z +B Z +C Y +B Z +A Y +B Z +A X +A Y +B X +B Z +A Y +A Y +A Y +A Y +B X +B Y +C Z +A Y +A Y +A Y +C Z +A X +B Z +B X +C Y +B X +B X +A Y +C Y +B X +A Z +A Y +B X +A Y +A Y +B Z +A Y +A Y +A Y +B Y +A Y +A Y +A Y +A Y +B X +C Y +A Y +A Y +A Y +A Y +A Y +B Z +B X +B Z +A Y +B X +A Y +B X +C Y +A Y +A Y +A Y +C Y +A Z +A Y +A Y +B Y +B Z +B Z +A Y +B X +A Y +B X +C Y +A Y +B X +B X +B X +A Y +B Y +A Y +A Y +B X +B X +A Y +A Y +C Y +A Y +B Z +A Y +A Y +B Z +A Y +C Y +B X +A Y +A Y +A Y +B X +B X +B X +A Y +B Z +B Z +B X +B Z +A Y +B X +B Z +A Y +A Y +C Z +B X +B X +C Z +C Y +A Y +C Z +A Y +A X +B Z +A Y +A Y +A Y +B Z +B Z +B Z +A Y +A Y +B Z +C Y +A Y +A X +B Z +A Y +A Y +B Z +B Z +C Y +C Z +A Y +A X +B Z +C Z +B Y +B X +B X +B X +B Y +B X +A Y +B X +B Z +B Z +A Y +B Z +A Y +A Y +A Y +B X +A Y +A Y +B X +A Y +A Y +A Y +A Y +A Z +B X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +A X +A Z +A Y +B Y +C Y +A Y +A Y +A Y +C Y +A Y +B X +A Y +B Z +B X +B Z +A Y +B Z +A Z +B X +A Y +A Z +B X +B X +B Z +A Y +A Y +B Z +A Z +A Y +C Y +A Y +A Y +B Z +B Z +B X +C Y +B X +A Y +B X +B Y +B Y +C Z +A Y +A Y +B Z +B X +A Y +A X +A Y +A Z +A Y +B Y +A X +A Y +B Y +A Y +B X +A Y +A Y +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B X +B Y +B X +B Z +A X +A Y +B X +B Z +A Y +B Y +B Y +A X +C Y +B Z +B X +A Y +B Z +A X +B Y +B X +A Y +C Y +B Z +B X +A Y +B Z +C Z +A Y +A Y +A Y +A Y +B X +B X +A X +A Y +A Y +A Y +A X +C Y +C X +B Z +A Y +A Y +B X +A Y +A Y +C Y +B X +A X +B X +C X +A Z +A Y +C Z +A Y +A Y +B Z +B Z +C Y +A Y +A Y +B X +B X +A Y +C X +A X +A Y +A Y +A Y +B Y +A Y +A Y +B X +A Y +B Z +C X +A Y +B X +A Y +A X +A Y +A X +B X +A Y +A Y +A Y +B Y +B Z +B Z +B X +B Z +A Y +B Z +A Y +B Z +C Z +A Z +A Z +B X +A X +B Z +B Z +A X +B X +C X +C X +A X +A Y +A X +B Z +C Y +B X +B Z +B X +A Y +A Y +A Y +B X +B Z +B Z +B Z +A Y +A Y +B Y +B Z +A Y +A Y +C Y +A Y +A X +A Y +A Y +A Y +B Z +B Z +A Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +C Y +B X +A Y +A X +A Y +B Z +B Z +B Z +B Z +B Z +A Z +B Z +A Z +C Y +B X +B Y +A X +B X +B X +A Y +A Y +A Y +A Y +B Y +A Y +A Y +A X +A Y +B Y +B X +C Y +B X +C X +A Y +B Z +A Y +A Y +B Z +A Y +A Y +B X +A Y +C Y +A Y +A Y +A Y +C Z +A X +B Y +A Y +C Y +A Y +B Z +A Y +B Z +B X +A Y +A Y +C Y +A Y +B Y +B Z +A Y +B X +A Y +A Y +C Y +C X +A Y +B Z +A Y +B X +B Z +B X +B X +A Y +A Z +B X +A Z +A Y +C Y +B Y +B X +A Y +A Y +A Y +B X +B Z +B Y +B X +A Y +A Y +A Y +A Y +A X +A Y +B X +A Y +B Z +B Z +B X +A Y +A Y +C X +B Z +B Z +B Y +A Z +B Y +B Y +C Z +A X +B X +B X +A Y +A Y +B X +A Y +B Z +B X +B X +C X +B Z +A Y +A Y +B X +B Z +A Y +B Y +A Y +B X +B X +B X +B Y +A Y +B Z +A Y +B Y +B Z +B X +B X +A Y +A Y +A Y +C Y +B X +B Z +A Z +A Y +A Z +A Y +A Y +B Z +A Y +B Z +C Z +B X +A Y +B Z +A Y +A X +B Y +A X +C Y +B Z +B Z +A Y +A X +B Z +C Z +B Z +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +B Z +A Y +A Y +A Y +A Y +B X +B Z +A Y +A Y +C Y +B Z +A Y +C Y +C Z +B Z +A Y +A Y +C Z +B Z +B Y +B X +A Y +A Y +B Z +A Y +C X +B Z +B X +B Z +B X +B Z +B Z +B Z +A Y +A Y +A Y +C Y +A Y +A Y +B Z +B X +B X +A Y +A Y +A X +A Y +A Y +A X +B X +B Y +B Z +A Y +A X +C Z +A Y +C Y +B X +A X +B Z +A Y +B Z +B Z +B X +A Y +A Y +C Z +A Y +A X +A Y +A Y +C Z +A Y +B X +A Z +B Z +B X +A Y +A X +A Y +A Z +B X +B Z +A Y +B Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +C Y +A X +B Z +B X +B X +A Y +A Y +B X +A Y +C Y +A Y +A Y +B X +A Y +C X +A Y +B Z +B X +A Y +A X +C X +A Y +A Y +B Y +A Y +B Z +C Z +B X +B Y +C X +A Y +B X +A Y +B X +B Z +B Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +A Y +B Z +B Z +A Y +C Y +B X +A Y +A Y +A Y +B X +A Y +B Z +A Y +B X +B Y +B X +B Y +B X +B Z +A X +B Z +C Z +B Y +A Y +A X +A Z +B Z +B Z +B Z +A Y +A Y +A Y +A Y +A Y +B Z +A Y +A Y +B Y +A Y +A Y +C Z +B Y +C Y +A Y +B Z +A Y +B Z +A Y +B X +A Z +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B Z +B X +A Y +B Z +A Y +A Z +A Y +B Y +A Y +B X +B X +B Z +A Y +A Y +A Y +B Z +B Y +A Y +B X +C Z +A X +B Z +B X +A Y +A Y +A Z +B X +A X +A Y +C Y +C Y +A Y +A Y +A Y +A Y +B Z +B X +B X +A Y +B X +A Y +B X +A Y +A X +B X +B Z +A Y +B X +B X +B Z +B Y +A Y +B Z +A Y +A Y +A Y +A Y +B Y +B Y +B X +B Y +B X +B X +A Y +C X +A X +B X +A Y +B Z +A Y +A Y +B Z +B X +A Y +B Z +B X +B Z +A Y +A Y +A Y +A Y +B Y +B Z +A X +B Z +B X +A Y +A Y +C Z +A Y +B X +B Z +A Y +A Y +C X +A Y +C Y +A Z +A Y +B Y +B X +A Y +B Z +A Y +A Y +A Y +A Y +A X +B Z +B X +B Z +A Y +A Y +B X +A Y +C Z +B X +B X +A Y +A Y +B X +B Y +A Y +A Y +A Y +B Z +A X +A Y +A Y +A Y +A Y +B X +B Z +C Y +B Z +B X +A Y +B Z +A Y +B Z +A Y +C X +A Y +A Y +C Y +A Y +A Y +A Y +A Y +A Y +B X +B Y +A X +A Y +B Z +C Y +A Y +A Y +B X +A X +A X +B X +A Y +A Y +A Y +A X +C Y +B X +A Y +A Y +A Y +A Y +A Y +A Y +B Z +A Y +B Z +C Y +A Y +A Y +A Y +A Y +B Z +B Z +A X +A Y +A X +A X +A Y +A Y +B Z +B X +A Y +A Y +B X +B Y +C Z +A X +A X +A Y +B X +A Y +B X +B Z +A Y +B X +A Y +A Y +B Z +B X +B X +B X +A Y +A Y +B Z +B Z +A Y +B Y +A Y +A Y +A Y +A Y +B X +A X +B Y +B X +A Y +C X +B Z +B X +A Y +B X +B X +B X +B Y +B Y +A Y +A Z +B Z +C Y +A Y +A Y +A Z +A X +A Y +C Y +A Y +B Z +A Y +C Y +C Y +B Z +A Y +B Z +B Z +A Y +B Z +A Y +C Y +B Z +B X +B X +A Y +A Y +C Y +A Y +A Y +A Y +A X +A Y +A Y +A Y +C Z +B X +B Y +B X +A Y +A Y +C Y +A Y +A Y +A Y +B Z +B Y +A X +B Z +A Y +A Y +C Y +A Y +A Y +C Y +B X +B X +A Y +C Z +A Y +A Y +A Y +C Y +B Y +B Z +B Y +C X +A Y +B Y +C Y +B Z +A Y +B X +B X +A Y +A Y +A Y +B Y +B Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B Z +B Z +A Z +B X +B Z +B X +A Y +A Y +B Z +B Z +C Y +A Y +B Z +B Y +A Y +B X +B Z +B Z +A X +B X +A Y +A Z +B Z +A Y +B X +A Y +A Y +A Y +B X +B X +B Z +A Y +A Y +A X +C X +A Y +A X +B Z +B Z +A Y +C Y +B Z +B Z +B Y +B Z +A X +A Y +A Y +B Z +B X +A Y +C Z +A X +A Y +B Z +B X +C Y +A Y +A Y +B Y +B X +A Z +B X +A Y +A Y +B Z +C Z +B Z +B Z +A Y +A Y +A Y +B X +A Y +A X +C X +A Y +A Y +B Z +A Y +B Y +B X +A Z +A Y +A Y +A Y +C Y +B X +B Y +A Y +B Y +C Z +B X +B Z +B Z +B X +A Y +B Z +B X +A Y +A X +B Y +A Y +A Z +B X +B Z +A Y +C Z +B X +B Z +A Y +A X +A Y +B Z +B Z +A X +C Y +B X +C Z +B Y +A X +B X +C Y +A Y +B Y +B Z +A Y +A Y +A Y +A Y +B Y +B Z +B X +B X +A Y +A Z +B X +A Y +A Y +A Y +A X +B Z +C Z +C Y +B X +A Y +A Y +A Y +C X +B Z +B Z +A Y +A X +B X +A Y +B X +A X +B X +B Z +B X +B X +A Y +A Y +B X +A Y +A Y +A Y +B Z +B Y +B Z +A Y +A Y +A Y +B Z +A Y +A Y +A Y +C Y +B Y +B Z +A Y +B X +B Z +B Y +B X +A Y +A Y +A Y +A Y +C Z +A Y +A X +A Y +A Y +A Y +A Y +B Z +B Z +B Z +C Y +A Y +A Y +A Y +A Z +A Y +C Y +A Y +A Y +B Z +A Y +A Y +A Y +B X +A Y +B Y +A Y +A Y +B Z +B X +A Y +A Y +B Y +B X +A Y +B X +A Y +A Y +A Y +A Z +A Y +B X +B Y +B X +C Y +B Z +A X +A Y +A Y +A Y +B Z +B X +B X +B Z +B Y +A Y +A Z +A Y +C Z +B X +A Y +B Z +B Z +B Y +B X +A Y +C X +A Y +A Y +A Y +A Y +B Z +B Z +A Y +A Y +A Y +B Z +A Y +A Y +A Y +A Y +A Y +A Y +A Y +B X +A Y +C Y +B Z +B Z +A Y +A Y +A Y +B Y +A X +B Z +A X +B Z +B Y +A Y +B Z +B X +B X +A Y +A Y +A Y +B Z +A Y +A Y +B X +B X +A Y +B X +A Y +B X +A Y +B Z +A Y +B X +A Z +B Z +A Y +C Y +A Y +A Y +C Y +A Y +A Y +A X +A Y +C Y +A Y +A Y +B X +A Y +A Y +B X +C Y +A Y +B X +C Z +B Z +B Y +A Y +B Z +B Y +A X +A X +A Y +A Y +A Y +B X +B Z +C Y +B X +B Z +A Y +A Y +A Y +A Y +B X +B Y +C Y +A Y +A Y +A Y +B Z +B Y +A Y +B X +B Z +A Y +A Y +A Y +A Y +B Y +A X +A X +B Z +B Y +C Y +B Z +B Z +A Y +A Y +B Z +A Y +B Z +C X +A Y +A Y +B Y +A Y +B Z +A Y +B Z +B Z +A Y +A Y +C Z +C Y +A Y +A Y +C Y +A Y +C Y +A Y +B Z +A Y +B X +A X +B Z +A Y +A Y +A Y +B Z +A Z +C Y +A Y +A Y +A Y +B X +B X +A Y +A Y +A X +A Y +B Y +B X +B X +A Y +A Y +C Y +A Z +A Y +B X +B X +B Z +A Y +A Y +B Y +C Y +B X +A Y +A Y +A Y +A Y +A X +B X +A Y +A Y +B Z +A X +C Y +B X +A Y +B Z +A Y +A Y +C Y +A Y +A X +A Y +A Y +B Z +A Y +C Z +A Y +B X +B X +B Y +B Z +A Y +A Y +A Y +B Z +A Y +B Z +A Y +A X +A Z +A Y +C Z +B X +A Y +B Z +B Y +A Y +B X +B Z +B Z +B Z +A Y +A X +B Y +B X +A Y +A Y +A Y +B X +A Y +A Y +B Z +A Y +C Y +B X +A Y +A Y +C Z +B Z +A Y +B Z +B Z +B Z +A Y +B Z +B Y +A Y +A Y +C Y +A Y +B Y +A Y +B X +A Y +C Z +A Y +B X +A X +A Y +A Y +B Z +A Y +B X +B Z +B X +A Y +A Y +A Y +A Y +B Z +A Y +B Z +A Y +A Y +C Y +A Y +C Y +B X +B X +A Y +A X +B Z +B X +A Y +A Y +A Y +A Y +B Y +C Y +A X +B X +A Y +C Y +B Y +A Y +B Y +B Z +A Y +B Z +B X +A Y +B X +A Y +C Y +A Y +B X +B Z +A Y +A Y +A Y +A X +A Y +A Z +C Z +A Y +B Z +A Y +B X +B X +A Y +C Y +C Y +A Y +A Y +B Y +A Y +C Z +B Z +C Y +B X +A Y +B Z +A Y +B X +C Y +B X +A Y +A Y +B X +B Z +A Y +B Z +C Y +B X +A Y +B Z +A Y +B Z +B Z +B Z +A Y +A Y +A Y \ No newline at end of file diff --git a/2022/2/part1.ts b/2022/2/part1.ts new file mode 100644 index 0000000..ae3e19b --- /dev/null +++ b/2022/2/part1.ts @@ -0,0 +1,39 @@ +const input = await Deno.readTextFile('./input.txt'); + +const values = { + A: 1, + B: 2, + C: 3, + X: 1, + Y: 2, + Z: 3 +}; +const userMap = { + A: "R", + B: "P", + C: "S", + X: "R", + Y: "P", + Z: "S" +}; + +let score = 0; +for(const line of input.split("\n")) { + const opponent = line[0] as (keyof typeof values); + const player = line[2] as (keyof typeof values); + const ov = values[opponent]; + const pv = values[player]; + + score += values[player]; + + // simple rock paper scissors + if(ov === pv) { + score += 3; + } else if(pv - 1 === ov) { + score += 6; + } else if(pv + 2 === ov) { + score += 6; + } +} + +console.log(score); \ No newline at end of file diff --git a/2022/2/part2.ts b/2022/2/part2.ts new file mode 100644 index 0000000..e0c9d4a --- /dev/null +++ b/2022/2/part2.ts @@ -0,0 +1,75 @@ +const input = await Deno.readTextFile('./input.txt'); + +const playerValues = { + A: 1, + B: 2, + C: 3, +}; +const userMap = { + A: "R", + B: "P", + C: "S", + + X: "Lose", + Y: "Draw", + Z: "Win" +}; + +const resultValues = { + X: 0, + Y: 3, + Z: 6 +} + +function mapFromValue(value: number) { + return userMap[Object.entries(playerValues).find(([_, val]) => val === value)![0] as keyof typeof playerValues]; +} +function mapResultFromValue(value: number) { + return userMap[Object.entries(resultValues).find(([_, val]) => val === value)![0] as keyof typeof resultValues]; +} + +function log(...args: any[]) { + console.log(args.join("\t")); +} + +function logResult(pv: number, ov: number, rv: number, score: number) { + log(mapResultFromValue(rv), pv + " " + mapFromValue(pv), ov + " " + mapFromValue(ov), rv, rv+pv, score); +} + +log("state", "pv", "ov", "result", "score", "totalScore"); + +let score = 0; +for(const line of input.split("\n")) { + const opponent = line[0] as (keyof typeof playerValues); + const result = line[2] as (keyof typeof resultValues); + const ov = playerValues[opponent]; + + score += resultValues[result]; + + // simple rock paper scissors + if(result === "Y") { + // need to draw + score += playerValues[opponent]; + logResult(ov, ov, resultValues[result], score); + } else if(result === "X") { + // need to win + if(ov === 1) { + score += 3; + logResult(ov, 3, resultValues[result], score); + } else { + score += ov - 1; + logResult(ov, ov - 1, resultValues[result], score); + } + } else { + // need to lose + if(ov === 3) { + score += 1; + logResult(ov, 1, resultValues[result], score); + } else { + score += ov + 1; + logResult(ov, ov + 1, resultValues[result], score); + } + } +} + +console.log(score); \ No newline at end of file diff --git a/2022/2/testinput.txt b/2022/2/testinput.txt new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/2022/2/testinput.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/2022/3/input b/2022/3/input new file mode 100644 index 0000000..1496b62 --- /dev/null +++ b/2022/3/input @@ -0,0 +1,300 @@ +MVWpzTTrTFNNLtssjV +hRJncnJCnhPCnBSbCQRhhQRPFHmsbHLzbLNHsjNNFmGGGsGF +lSBQJBBBBcnccnQvBnPQznfrgwlrTZfDwTfWqrrpgMpw +sRPgrzSgrSbfTrgspBPsDWWTmdnvdZWZwTmwvdmd +tVGpCGqCGjlHcNGVNHZDmnZMWdWMWCdZDvnZ +HqpQptLlclLGtlpcjHNhQqfRhrSBrrbfbrSRrsPfBSgg +JpjLbQbFPBjDBBJLWltglfBfhhlcctht +vNFmsdFsnmzGtWvgzhzc +rqwRCCqmCTqHCnqRNTNFsJVMQSjLRbbVVbjQVLbLSV +mLNNCNDwBwDnmCwnJwLRvdlqZclRccsgvcZndc +QWMtVWbpVlgHHcgMHs +VsTVWhThsVQWzjtQPpVWjWbpwJNCJDCzSNNCCCSfmfBCSGLL +NbSfHnwDvwwfHwwQsHbWPgrsZsZjRPLRgLWhWP +lmMlTGFzVmzqjGLLZWWGhrCh +qFclMprqmrvbcnwDQtNQ +tWQZFvvtWQWbqQQggZZLvpLrpzDrmGDmmDHPzPzHrfnHTG +NMlhlTMccTCVBlRNHzJnzDDmnJmnGGBf +NMMSSSSSlNVMdjdNSNNhFwTbvbLqjbtLwWQwZqgg +jPwcJwRmmhJpbhNJVgDbrHzzzQzzBQHg +tdZqlCnnnlvZCqlnlCSqZdFCHGDBgzsDzssBtHGLQtrHsssL +TZZFSdrdlZMFZRMwMPmNcwNmwm +nsdhzmDBGQWQPvJPjbbW +gCgBqCNpMHTwgwqMPRJJTtWjbFRJFJvP +ZlCwBrwgmzhGzDrd +sTBHfcnBTnqHRvqPgFFbLtrQTPLjjm +GWzpwSJSpbwbNNGJPQrrtrrrrgzLtjzm +NNSlCCdplWwplCwSndnssdZfqVbHvfqc +rrfHgqnlllRrDgrCbQfszMPtmzPQzFsFMQ +JJLGVGjcwVcPQNNNtRPmLM +WThVJJWJBdGwBpBTqDrSRCCggShqbSCb +TbCqzqzmbCffzDbHRddLbdRFRS +ZmvZJPjPwwWNZJGtWSDRRDFWSLhhhMVVWL +ZwplGwmptNjZnjvnGGPjJlZppTrTsCczfggBgfgfggCsBrqr +gMBBbfBbBMfnMsvRvWJhDsQW +ZZqHLzczjjsLzlpjqTprNJvhQpRvtRJJQrtQtJ +llZlzZZzPZZqsTZscHczfnSwSPSwwgSBwwSnPwnf +chMtcPPgQtthqgvczhMTcCSBLBlGpsFnBnnsGvLplSFG +bhRmJWDRmHSmFGBnGBps +jdDZWbrDdDbbdbDrRRWwRjZRVqztCzqtcThcTQtgqVMMVzjq +flNmNHgcZwTzRLzMLRPlzz +nntqBJtFbbCbBVCnBtFjJjhVhLzLvRLvgRRvPvpMpvpp +CgJWjJQDjgBtnGNGfcssNfcwNW +MrMpMrGBznjPMGCmCrrjdwndfJLQNfdLQNdNggdL +sJVcZqvhZtVqhDFFsDJslcdwgwvwQwwQNbbTbwfLLTgL +RDDRcsSsstJstVDDqctszzmRmGjpjBRHPmmGHGrj +tdplZtlrBGwTlLQQ +sfsPPvNhWLQBhGQG +zPVfzVbbMcscvVfzzNgcJHnJZgtrrndJqjJqndrL +nglLjRCCHLLCnNCLHQnFNQmmVMbVmwMwlMwMMMWwBTsT +cqtfcqZpzhSvvBfWwbvrbT +PPqpDSqcSJPdPhtPtqZcpPtGjFRFFFNLJFGRgjFbGRNbHn +gjtRSLMqLdSgLMCltTSDQcQQqhDcfcfrWDhWrr +GwFZCwNzFJsPmFFmZmPPNhvDDfDWWmpvQWWfVDQppW +swNGZbPBGwnCgBBlBljl +BsrDsnQGwFFQQtfNTBNSffBgBt +VJlhWVLlRppLQZTCbtZTttgJ +ppLqqRhQdRPhqPVhdPjhljqHFnGnzFrjFFDznHFHrmwwnH +CJMmmJLmlshCCdmzjHjPWztgdnjttt +GwZvGwrgTcFpzHWjnT +GbqrvrRwbrbGbwwZBbgfhmJMmsDJhNRfLChhCh +CfgfjCLCgfgFgBhBsccswQwtsQHvBBtc +SbSMGbnmDMGJWmRmDmvzwtcscWtQzsrPsvHc +DbJdNpJSnMSJmpSSNVqgqgTTFVQTFqdZLq +MBMCmlllPSSlmmPPjCMpPgggJcnZgntJsDvHsDZt +hrNzhrRNbrhbGRbfpVLRGNqqngvnttngJctgDZJGcZvHvZnc +LTTzVqppSmwdTmQW +mmlBQmLbsbmRnFnwlqqprF +dZScZSZSdHcNMDcJwLqRfppzpzfTpHfF +JLWJLJJJdMmGtgCWjQjt +PPMzpVDblwGVMMzDLLjrcrjdzjdTzLjd +RRcCJRcNQRBqtCFBRJJsZWBWrjLWLHZZWndBLWjh +qQQtttNqsqqtJRgqQfcpcgDcbggplGbfMp +QmmSTQPmLSmjpczMJtwPzg +BHHHdwdvDpllvctjZv +HdrDHNfrrBDGGBhBNfHNsLFqmbRQSwqmGTLnTbSF +gcMmgRQPqqPPsgjFSvctCHvHllSSHcvd +JTWfZwhTwzbWwTFTrZnTrDDlDSVtVHLVShtvSHvlHL +bWbWBfzTfwrWJNbTrnzfTwJFpmMQgqsFRsQGqRMggPmPBG +GqCWpGGLpmpWjbSDGjGGmwCzZlvMBTrCvsrlwwswCl +FPFHFVdJgQHJZnslrgvsTrwMlNgw +hQVchcdcZZpZqcDG +JbBRgBsRffgPPFQttQvQQMvG +dmNZgmZVtGTNtNGC +ZqqndLZnccqRbsrgpggsBc +DDvMVmTjwFWPBBTzBF +cqnggcbNNCqbQQqbZbpfQpqgRWlFhLRBhRzRPLFJhlJBfPLh +dpscpcncbbqcpMVSvSrPDMsrjr +hGCGZmVRRcMVsGMtmZWssmFLzbFblnnzfmqbfnzNNb +wjrSPBJdSjjDrggpSJpdrSnlFNlzLTnqNLqqpbqqfMln +dMwPBHPPJHDdvrBBhshWCGcsQRcHRZGV +vdHwhqdtLdVnHBZbFBFzbBPS +TmNCLNDpWfCNmpCgTWNTDMMZlzSggBMzlZlMBlBbZZ +NQfWcscDNQrhqvGLrdhVjh +lZLqzzqvgrCRcQcCLD +HSVVwNTJzwVNTDQrRrrdrBwdhd +TpNTzsfSTVsSpHVppzFpgvvlqZWZPMvMjPPGGsgP +BCMLshLdLDDCgwFRwHHqqRqRWd +QnSqQlGSfpQzTQJNTPNwNPFRFcccHc +mfJJmztnQpGpvnSzGrsqgrhrBBhqjBrthL +BSlmzmlvdNnlQlQQJnJHRVFVFVVqMtqRMfSfCw +WBPsDPBBjfssFHMRRq +DLWpGhbPjbhZrhZDnBQgdNZmQNgmvdzg +WWvgBFgHWChBzgBFbjbtPtnPrsHlsRMrwRrMRR +SGfNpfdGfVpVSGGppSDdwRwclMlfPMwccsntPqPw +TVdpQDSpQZJpVpDQQFBbthvmWzmgvhbjzJ +VVCCbzqdbzhFHvbdhZFPmhCPSNRNGSrPJfTNRSGJfGwPST +LngtBnlcnDvLcTTRfTTwRtGNTG +DpnBjMpLlLDQWDgvpLvbqzmbjzVjVHqbFFqbFq +SbzMbNQQSDdmvqqzdSlWFpwZnvpFWWllpFww +CjLPTPjjLCPtBCLJjBLPLBTFsFFgfwwpZgplpgFnWWRl +nPncrBHGnmrbdmdmNN +FnlblGlTTbNVLVtRvQQvgqRQBCvgNr +DPMDMpMHmnzjPqDhQWvvQvhghq +zMMcddznsjFTldVGlFGT +cLSNGLhmRRVmlVCq +HvzbQBzBMQMpQDpCSlSVZRSCqV +QwWznWnTbQSMMJQHnvwbWjrhNhLFgsGNNrFLNnFNhd +dBrWNQWWcTNqqnNN +bPlmgRgRghlCVlbhwZccCZjZqvmqvmTTvGqmJTvqnGTGvLLJ +DCDZhjllcpDMrSQS +ddtNNTFTwRzGRGCwqnBMjlqMHMfqnB +hDpPsQLLSprhnHVhqhVfHM +QWLWDQZpgpWbQgfspGGRdcGcCcCcztTGZC +GGHFdGwFlswcFtnvTfjMjBFfNBjNBZ +JWmSJLPSRprWWPWVMMVQpZfBvvfQtj +RzPSPDbDDhbhPDLRhCgGHHccsqGCqqtHzG +dbSdptWddDMNtdFvttFclqMTZJlJTlMZqJTJTqjC +BzfwRzrwPzfzLNGmZZCZBTGBqqlH +hVNVQPNQQQVLPwhRrQwgWWvFdDsFWSbdWgdFSFDb +hhSnmhtZSFSqZBJSSqqmJJRHPPLgHtPcGGGcWGtvvHwgvG +fCMpfTQjTrzrzCQMsQdHGHvPGPwLppPRvWPLLc +MdTzCsCMzNzDCTjlmNhRmRnZBllRVh +RrFglccgBVVvFNvCvWlgmDbbDfQDtCdjjDbDwmZD +STnMqSLHJhHHnqLqtnBndbBdfQQZDtZD +GHJPTBsTSsMMSpSBHJFNlWzcvFlzsVzvzgsv +lplNdrVrVrWMMVcJfcDDzbqCCpDL +SSSgvBRSjggPgzvTTRHTvFnfJLbcLsCDLnCLDCcJBsJq +GmHjjRwvHSjHTRjrlZrNMzVMhVrmVW +gdtFtgStSbHCbHMPZrFLPLrVlrVZrP +hQnjMGfDqTvzvpBjVVjPRLRRjJ +QmsQmhvvMtssHtWw +RNjTGSCLJCGdRqMRFvMrfzMvzz +ZpcWcVDpWBmWQMZZpZDpwBcznrshtntvfvhfFtzmvnzvhf +WHHHcVWgQVCbCllbgMLN +ZjjdJHSdSzvcZFMhhhDqDHtthw +rNTlNqVWTmRPlshsDPDlph +WbTNGNmQBRQbRNQgNGmCLdvvjzcCSBqLcLnScL +bZwpSpBvSHCBqNzpdFffqQft +nWRnGRnVnljmlDnzdPfQfdcQPWWfNq +dmRDGMMlDmnVjgMlhBSwCbCgwHbBHhvv +NwqLgLBLgnwNNBGpgsQsddhhpQQg +JcztcZnzVtZvnVcJMTvTJtWtppsQHGdQhhHHQsPhWdPS +fJTJnMmvZvMvRDqFblNBNNjlBf +drZVzZzzNWWzwwTWTZrjWcLCqnRqNnLNLqCqnsPPRL +JhlBgvHBBLnwMBqDwC +GmGFSHmhJSGJwgFJmwJhJhgQVWVdbSWZQzZTrWtZzjzjTz +wPGRPpnzgwwGgLddFBFrnrnJdc +jCsVclQWmCTrJJddrdFs +lWjlCqfmlWccpGPPSgcf +hCThCzTdPcPhzqTzMfVfHrhMMmhVHgVM +lJSJNqwJsZBSsSBFsMprDmFmFDfDDHgHDf +JNGQsSSNGsbZZZSBwZLPtdLjttnqPCbtPbjC +vnlWNpbrNrpShhQDLRLB +MzCjPgffVTVgCJSRQhBdRdJS +VPHcfcBfTzVMTttMzMfgzMfHvrllWvlnvNvlmGwWNwwNmw +BwwsqPJqwBssLlFqLRCDzWwzDGRGGWfSRG +vTtmmthvpphpnNgNvvpvRrDCddDQrCQCzCDrCfnf +pppccNpTVVlqssHHVzBH +HWHphZWVWvMZNvpMtfJZgssffsjJgBlslJ +RLmrFFnGFrFFrrFCRwCrLNPwqfjSJjqJSJBbsqjbbsblfq +LnFLPPGLrGNRQPmndLzPmPmpcDcMHhcMhVHvczcpHHchcV +zwqqvNDVggwqVfNQRlszFBsCCJFtFlFPsz +MSrrGTZPGSSMSjPbTmtlHBBFrFHFsHlsJsct +MnmMPMSZZGSZWmSjnWgfqdgVQDvnqvRDggDV +SQCSBShsQnSsSJswsNpVppPPMVpGpnDVgg +WWjHvmtWZrwvtzzjTTRPrRRrMVNVVGgVGpGR +lTvWjWLfWwbJCQqBSlbB +cjPChhswrNVtMZJjVM +pfvTFvTzLBFndGTlJmVJZmNlCMGtCJ +nfvFTfpbBFdSFpTLswsWDbchwHCWHrbw +lNdNPLJJLHHHlpPJcvtVcsBBrrBvBqrVrC +wDTbwTQRZTMWsVWtmWhhTr +nzRMbSZtMQDnpzzJHLHNflHP +HrwwmwcRbmwcbrrTbwwcrTJWLlPshllhLccqLhnnlljhZhjZ +GMFMSNSpCBSFSdGpNFpBznLlzzhzshlGhhqPhGGL +nFFSCCSSfttBdddDQNDBQpSSrbrmWJwrHfJHWJrbVwWHrgVr +SdddNNCmpNNDhMswhsmbhvHM +frtzqqqFjgrWfgfqtthsnvRHZRRvFlhnvRZb +rtrgqzzrbWtqLGLLtBWzfGcTNCCVGpSNDppTJJVddNpPSG +WWJvJvBgpHSHScQRQSVQLzqL +ddZTlZGZVfQhZRLLMqsR +rPfwrGGrFjjNTGNCCVBggDJHmNDvbmmpmNJJ +bbGrJPRVPtfsVfFlMjBV +WQzhQQQNZQCWNnQDhzWdNjFZggmlHjjmMmMFjFHpMs +CzQCSWDTWhNhzWhTGJwtRRqTblwcclvP +HLDvZgZldDTnLLsswMpVLn +FNVQzQSPznCMmpBwCF +SqfJPfttqffjJPVlhvhZZtvdVDRZ +jVsLvHvvdrSjpJFsGzmnmltnml +nTNTRCTBTmmmFPMJ +CQnCggWQDgBrrSqHjDDfSS +ZpNlrZNcmctZbcZlmcmZhhpPvPHvwBMHJPMTMHBTFJvJ +zmdCnGzGRnLDjQnzPvMFVHMVMLTVwMJv +GGjqssqgzCnCzQsshcffmrbNrrNZtW +DNpTwhpLlWMDWNMhbJjGttJFHgDcjtjG +wqQrdCdqbFtCtJtJ +vffdrwfPrsmqVBBWRVlRRlTSTWSTlR +ZqTCTQQTFvsDSsBDvWBd +hfBLzRLtHHLDDWRRWWDNbd +pHhhnPzLfJcJhzHLzZjcmwCTqTQgwBqqwg +WJHgqgFqrVrqgqCHwsJHHVFZzppZFGGfTtpcfbdpzzpd +RvNMQlMBhwMdMfcpbM +LLRQNBDSSNSwmDDBQRBRBCHsgrgHLVnJVqLsJsnCPJ +BFhGsDsDsBtsPGtQDrrMdbdrffrffbJbRt +cVVqScVSWWvVWgVZjnrHJgLfdrLrnrLLLQ +WmvqNZzzzZSvVzqvcccSzSmqFGCDTGBPQGDhwCDhNDCwPBQp +RqTlHHTTrQqHlTqsrVDqHbrZFZwhpBhphZBFhZpDpLLLfB +nSzGCGdvzdGNPBQQBfhLZfFwFN +WPPPCJMtJSQMJQCCWMJslRrrRgrMRbRqVqqTRR +BMtfLsLZfTPmCtGWZrZqJNJqvpZdWr +bRwgHhhRhbbSRbjSglcgwHHJWPcJdPrnNWrnqnWVVqpdnq +bgjlSgDljHhjgwMPCLPFDMFPGGBC +zJWjczcWjSWghZgzgSSSZflTqwlfqTTbnQwhdTnMdl +NrGVCmNpHFPsrJFbFQMJbJdQTn +JvrtpHHmrCGJCJmNvNpVCsHVgzWgWDDcjjgjDRStWWDLSgzz +HzdFsBBVsfnTfsPmPtDcZqtMhDDz +wrjjRQLlwwwrJQLQbCrbwlJDSlcSDtPZmPSDclWDtcDqWh +RwgprLbNLrLbCCpRCrJLRLFfsGTNNZHBZnnBvvfffnvd +MlqqlWZclnPtZtDSSvwQQjgQpNQSRM +rLJTsBrsJBhshTNNwSQBWNvNgNSg +JbbbChCHsJzHzbWdGHThlFnnPqlPlGPPGncPtFlD +WcMVvwNNvjRcwTQwVcpNRcspPCFtbPztbCTFmtPtCJtbCzmz +grrgDhrnDLnLrdfdLZlLZhmCqzlCbtJlSSStFmttqsJJ +GHHDdgnLDDhrrrgZrZgLNVVVVcRNvcwjWvpWGcRs +qhGhPSJtGhGtJtvNjnJjnvmNQQmj +sRBFlbZsrdBRRGbVGBDwDMDQwQwMNDjjjVNV +CzCflffbBszdBCbdbrtLcfhhgHLGgPccLSPh +zShhHFzgJWFVFFHFHhRPNjwqPLPtLbtrbwVjjr +ssnvTmvCDfpCZTnsfCqwNLNPwbJqNJPwrjZw +vDvpmcnmnBDnsnJTJmQWMHMWzScFggRFRFSW +nnVHHPLrnpssLnrpLRnHtHrjJcCdzCjcDzMzdqwRdjdDcJ +WWTGQQzSGWlTmBbDJJjwMJjcvvlDjw +TGTWBTWmTbgzghZhgzBgpVNrZPPfntfNrVLNNnZP +TqhQnqqLnnqddttNqQWdtqQmppSSFFClRmzmFZFLSmSlFF +BcHjGclVPPBrVrcjrGGDrMgcmmRJbRCFzpZmSDRpRZJJmRzz +ccGjMgvPvsHMgvBHWlhQdqwtllwNdThs +WjddwRGgHRRdMbrwHRwWjHDtDZplslnJnZrsDvCprJPJ +QSLLFqQBffCFststlFnn +CSSmSqzmVVjWMdMjVWgT +lTfQRhVpRzjThpRQTTTlvHrvBvHnPMHgHqHJvn +cGDctCwCdDCGSFcJsFJsFBvgnMBrHvvrqngHgmgssg +SCbSDSFScNpfbRVVJf +RrwmdwMVjMjMTghDWNTJDpWfWG +SbPvNbvbSsPbSvZsPJtJWhHpGGGgJWgJ +lSFvsLNcqzqLrwnFQMnVdmnn +FgCJFTWntWTFtPLmJmmQJmCMMpljWZBwlGMljjjlwvwBvZ +SDSbVbdScSDzbLZMBrjlZpVrZp +ccsSDhSDffzbLNscfcfDcgqhPgTntqmnQmCgtgQCTJ +VnCnrHnPPrCwHmVWtqfMQQqzCqffCZ +DDbDcJJJbpJDGppFpqGZRWfGfddzMWtfWM +tTTglDcgFjwNPHPPwHlH +bMGbqqgPqqVVMGnbVqSMmRfPcJmCTPDDLJDTCmDm +FFjjZvFRsFCctmtvtJWD +wwFhHjQjwQhZrFjQbngglGbRMnSzgbRH +GPTTJSgTPrPPmcTPpdJsGGGjqbRvqlztqlRqMzGjRv +LwnfWLNwwHHQwHnjbbMMjWttqtMmMj +mhwfBDhnQTpJBcBJps +HQQHwMfwlltzMlVljQhVjjHPPPFGPFcCGprPTPPfDrDcGf +pRLdvRvJgqLRBSJCcvFnCDTPTcTGnT +LBLSJbRSLSqbSdBdgJRRqRbwjHHblQttlwtwhzpjMlwhpw +NWLNSNSDtgSgghgdcwccmwGntwclnT +FRCQzJRsvfVVjvzFJfQnffwCcmdwmHmmHmTwmCmdGBcq +sjfJvjfzPRPzvPPVFMssvSLhSSWrMZnSDNrDDhSLZZ +FvLpSLtCfPCWhRSZZMZJSW +jbbjwbHjQmHjHsQrQFMnwTnJznwRzhJRnNTM +gVrjqGqjgrgsFGLDtDBLLfLB +cgTvRWWLVScRWflNJJDfVJmVlG +nPPnnmqjmZHCHBHFdfwNsDhzzfJznhsfhw +bddmQqQjpdFCQWtLQMMSvMMQRS +wjnmPwCgjPnRlwnmvmvvPnTwbSSLLvsLDWdbbWzvsLzWbzbz +NqrGqFHqJlfhhJGbszdWQzzLNtQDzz +FfHFpphrJqJrpGBffcTnBjCnVTMjMRCnVljT +SrfSJGJpSgMprMHdhBGhsdsshdGsmm +nRTRPvQllQlblwvCjTwLTnvBqdhmHDPVsmDmdqshDVhNsP +lbRFHvRwlnlLbnbjLbLjLCzggSpWfMFzSZpzZFJJWpJr +vNLlFldlvPtHFPHQRt +jcpRsScDgshzjqzfVStntBTPMTnmWttntMpp +fSssgVjDsbqSVbCJClLRJLCZRZZb +wnHmCJccDDcrNnrNMRDtTzpTlMpTzpBp +PjSPPGjWjLzTjjMtzzMj +hWvLLFWvHvczVcVn +jgtngnnhMthcnLjMgCZvChDsmdNCvNNZDN +bWqFPbFbLzRFfZBNDNNPZsNd +RbJzGpzVLLLWHHQgTMwcTptQ +sJBhsMWQnhhrFBsFhlQQMfrDCDpLlVCddjTdDDpqDLTLdj +tZHHSRmNHcgmNzpDPJtttqjLqdpL +HbNbZmcHQJbsFWvs +VgPNWGbgSjGjfhRRFfzThtmtzF +qLCQJBqqcPPmLHhHFz +CcJvplQswNgZlNPSbS \ No newline at end of file diff --git a/2022/3/part1.ts b/2022/3/part1.ts new file mode 100644 index 0000000..13a6337 --- /dev/null +++ b/2022/3/part1.ts @@ -0,0 +1,17 @@ + +const input = Deno.readTextFileSync("input"); + +const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); + +let sum = 0; +for(const line of input.split("\n")) { + const firstHalf = line.slice(0, line.length / 2); + const secondHalf = line.slice(line.length / 2); + console.log(firstHalf, secondHalf, firstHalf.length, secondHalf.length); + + const sharedLetter = firstHalf.split("").find((letter) => secondHalf.includes(letter)); + sum += priority.indexOf(sharedLetter!) + 1; + console.log(sharedLetter, priority.indexOf(sharedLetter!) + 1); +} + +console.log(sum) \ No newline at end of file diff --git a/2022/3/part2.ts b/2022/3/part2.ts new file mode 100644 index 0000000..59003be --- /dev/null +++ b/2022/3/part2.ts @@ -0,0 +1,17 @@ + +const input = Deno.readTextFileSync("input"); + +const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""); + +let sum = 0; +const lines = input.split("\n"); +for(let i = 0; i < lines.length; i += 3) { + const first = lines[i]; + const second = lines[i + 1]; + const third = lines[i + 2]; + + const sharedLetter = first.split("").find((letter) => second.includes(letter) && third.includes(letter)); + sum += priority.indexOf(sharedLetter!) + 1; +} + +console.log(sum) \ No newline at end of file diff --git a/2022/3/testinput b/2022/3/testinput new file mode 100644 index 0000000..9919ffa --- /dev/null +++ b/2022/3/testinput @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw \ No newline at end of file diff --git a/2022/4/input b/2022/4/input new file mode 100644 index 0000000..f0f5469 --- /dev/null +++ b/2022/4/input @@ -0,0 +1,1000 @@ +4-90,1-4 +80-94,80-81 +1-97,96-99 +20-87,20-88 +84-84,83-88 +9-75,10-75 +7-25,24-48 +10-99,11-98 +4-98,1-1 +20-42,1-42 +5-31,6-31 +9-14,15-84 +87-98,22-81 +44-69,45-68 +2-2,2-83 +16-76,69-75 +43-71,43-91 +30-95,29-29 +1-1,3-87 +22-90,22-80 +86-90,91-98 +11-20,10-20 +59-67,60-79 +20-75,20-95 +26-57,27-56 +7-71,6-72 +10-78,1-6 +59-67,31-68 +91-95,7-81 +15-60,14-14 +5-54,6-53 +88-97,91-96 +46-70,45-69 +65-79,64-86 +74-74,25-73 +1-95,95-98 +8-70,70-71 +1-2,1-1 +35-43,38-60 +11-81,12-12 +1-1,1-90 +5-10,4-23 +87-97,52-96 +4-98,5-98 +1-3,7-90 +91-93,10-92 +46-46,46-89 +10-99,10-97 +34-50,51-51 +26-72,42-73 +9-69,9-10 +78-85,22-79 +65-72,64-78 +52-93,51-52 +4-22,5-22 +33-34,11-55 +46-91,47-90 +78-96,12-96 +16-98,15-98 +28-78,6-77 +7-15,7-16 +35-95,13-43 +99-99,73-92 +34-70,38-69 +4-74,92-96 +86-90,52-90 +15-45,15-44 +11-53,54-86 +21-78,16-21 +30-35,32-34 +49-72,71-78 +77-94,35-63 +6-47,17-36 +7-96,6-94 +50-51,50-65 +15-75,14-76 +19-88,12-87 +13-64,4-63 +53-64,52-65 +69-79,79-86 +13-34,13-14 +48-57,48-85 +66-80,2-79 +11-82,3-6 +29-91,29-84 +7-16,16-36 +45-86,44-87 +86-86,21-86 +21-87,22-86 +6-79,12-79 +3-64,98-98 +44-69,45-68 +19-94,95-95 +5-92,5-84 +83-85,84-85 +16-88,16-89 +86-91,29-86 +27-85,86-86 +48-60,48-69 +1-3,3-82 +25-25,40-46 +52-77,51-76 +35-38,36-38 +75-75,5-76 +62-77,63-69 +21-83,22-91 +12-12,12-93 +30-82,31-41 +17-62,18-63 +5-97,3-5 +49-96,50-96 +46-48,46-50 +22-22,14-21 +5-98,4-98 +91-92,16-92 +1-97,98-99 +85-97,73-96 +45-62,11-50 +3-14,13-73 +8-75,9-76 +32-58,33-53 +3-68,65-68 +6-10,6-7 +2-2,2-26 +6-96,5-95 +12-90,53-90 +48-86,49-59 +4-89,4-95 +44-44,45-54 +43-65,42-89 +95-95,5-79 +51-53,37-52 +31-99,30-97 +3-83,2-78 +32-73,32-33 +68-83,68-79 +4-17,16-53 +25-64,24-26 +8-92,8-93 +3-77,3-78 +53-77,29-77 +77-99,76-97 +46-88,49-83 +52-63,53-64 +25-78,14-84 +5-39,4-39 +48-84,49-83 +14-78,52-83 +27-87,35-95 +11-48,6-48 +3-99,1-34 +20-25,28-67 +33-61,34-83 +11-21,20-32 +30-39,10-39 +22-25,29-51 +18-88,32-89 +12-87,12-13 +49-76,29-32 +17-52,77-92 +72-79,65-79 +4-53,2-2 +61-91,62-91 +6-69,70-70 +2-96,96-99 +20-68,19-68 +60-98,59-59 +31-34,30-34 +2-22,19-21 +3-80,79-80 +72-72,71-71 +1-92,1-1 +67-86,48-94 +42-43,43-80 +3-89,89-90 +5-68,3-69 +7-7,6-65 +78-86,78-81 +54-85,85-85 +9-64,10-10 +39-96,38-38 +60-62,18-61 +20-47,47-81 +2-97,98-99 +18-83,83-83 +12-93,12-13 +4-4,3-74 +77-96,11-62 +2-81,2-80 +53-59,52-59 +55-94,54-90 +29-30,29-42 +52-69,64-69 +9-90,3-10 +16-39,15-61 +74-76,38-75 +12-14,22-43 +12-90,11-11 +5-94,6-93 +6-18,17-23 +8-8,8-18 +27-42,26-41 +8-77,7-7 +46-47,47-47 +1-57,21-29 +11-87,2-2 +45-45,46-46 +64-65,64-87 +36-36,37-74 +34-56,38-56 +66-77,67-98 +1-86,2-21 +11-30,12-29 +98-99,31-97 +5-5,10-71 +18-83,11-19 +8-38,3-8 +2-79,48-78 +10-14,9-24 +16-91,16-96 +3-3,4-99 +25-35,29-84 +49-70,50-74 +48-68,49-49 +61-61,57-61 +40-79,50-78 +56-83,27-84 +82-92,54-82 +50-59,59-69 +52-84,52-83 +17-66,15-65 +2-91,3-3 +13-47,12-88 +62-80,61-70 +11-71,4-8 +35-88,36-88 +9-55,5-10 +31-53,30-91 +22-36,35-97 +5-64,4-65 +61-61,4-62 +10-78,16-73 +6-81,5-82 +10-42,9-75 +17-36,16-96 +51-83,85-85 +35-68,67-68 +46-61,19-60 +12-55,10-56 +3-90,9-91 +63-97,98-99 +32-93,33-52 +66-71,67-67 +22-82,82-83 +6-91,7-92 +76-97,98-99 +33-86,53-85 +37-83,37-82 +5-86,64-87 +29-52,40-51 +60-76,76-77 +20-40,56-58 +14-88,3-89 +15-15,16-88 +96-99,6-97 +55-76,54-76 +22-88,28-81 +21-21,21-36 +2-92,1-93 +13-36,12-35 +50-81,18-51 +46-48,1-47 +17-82,82-84 +7-9,12-88 +16-94,16-58 +18-52,17-96 +6-82,7-82 +14-94,48-93 +12-76,9-13 +20-98,21-96 +69-95,16-92 +2-3,2-93 +28-38,27-39 +11-65,11-64 +43-44,43-63 +1-1,4-98 +3-3,3-9 +63-89,21-63 +6-48,5-48 +13-51,13-50 +90-96,53-95 +9-44,30-44 +61-74,61-62 +47-87,48-83 +26-26,25-96 +58-95,57-95 +24-81,80-81 +9-95,3-94 +13-31,14-32 +14-89,89-89 +19-29,18-28 +7-41,4-7 +63-73,63-64 +3-11,10-95 +36-41,26-47 +19-79,18-80 +46-86,30-45 +84-91,84-87 +1-76,1-88 +43-80,1-3 +3-8,47-77 +54-54,21-55 +3-83,82-83 +54-72,15-55 +10-49,62-71 +7-98,10-93 +89-92,8-93 +67-68,24-67 +43-80,44-84 +35-51,88-99 +4-99,3-98 +16-63,8-64 +80-99,81-99 +14-95,13-96 +13-84,12-13 +19-80,18-81 +2-91,3-86 +59-59,1-58 +23-90,10-21 +99-99,3-96 +7-7,3-8 +66-95,24-95 +27-86,26-86 +45-96,48-95 +33-56,29-34 +43-43,44-91 +2-96,3-97 +16-16,15-77 +61-61,61-71 +17-73,73-74 +64-86,63-86 +21-23,42-46 +29-30,19-30 +12-96,2-97 +25-25,25-73 +15-21,14-20 +82-90,15-69 +5-29,6-29 +2-95,82-96 +19-56,6-55 +24-56,24-52 +5-6,5-94 +40-97,40-40 +79-99,55-80 +9-98,97-99 +16-98,9-99 +70-71,24-70 +13-34,14-33 +40-41,40-51 +6-98,7-97 +16-77,55-58 +16-24,9-19 +41-70,42-70 +6-98,99-99 +77-77,40-76 +34-77,34-87 +74-92,29-74 +5-33,4-96 +14-83,1-82 +5-40,5-30 +72-72,11-71 +45-45,44-58 +10-10,9-72 +5-42,1-43 +11-99,10-99 +6-6,6-96 +39-59,38-60 +92-94,41-93 +1-17,3-94 +20-49,20-50 +3-26,28-54 +40-60,10-59 +24-95,55-96 +4-97,5-98 +3-93,1-93 +3-99,4-95 +60-98,17-57 +12-12,13-78 +3-34,2-99 +6-6,5-63 +3-85,4-65 +4-77,4-77 +56-56,11-55 +27-99,37-98 +7-7,7-59 +22-89,28-85 +6-39,7-96 +15-21,11-16 +51-72,13-71 +7-41,7-41 +18-28,10-27 +38-78,25-38 +32-84,32-83 +48-92,48-69 +83-84,84-84 +52-94,52-89 +33-33,31-33 +34-78,34-35 +6-97,14-96 +18-62,17-70 +12-51,13-56 +68-68,24-67 +6-19,19-63 +19-88,15-88 +44-62,45-63 +5-82,6-82 +4-89,96-99 +20-35,35-85 +39-52,38-51 +44-98,28-99 +76-78,6-76 +86-93,37-88 +63-82,12-83 +69-78,61-79 +97-98,6-98 +28-73,28-28 +11-73,10-73 +3-4,6-80 +71-75,72-75 +74-75,10-74 +5-99,4-18 +24-32,9-25 +1-8,7-80 +17-53,52-93 +13-95,12-94 +28-87,28-54 +78-89,90-93 +24-54,54-54 +11-62,10-62 +66-82,65-82 +31-94,30-94 +5-96,6-98 +90-91,27-81 +63-64,63-89 +5-63,5-5 +91-92,3-41 +65-66,60-65 +48-99,48-49 +9-96,8-9 +6-48,6-47 +4-87,3-86 +10-99,11-98 +4-79,4-4 +19-71,65-72 +3-90,3-3 +16-97,17-98 +61-98,99-99 +7-24,6-66 +76-82,77-82 +47-89,46-94 +4-91,6-70 +28-29,30-53 +54-58,55-74 +33-71,72-99 +26-26,26-43 +97-99,12-94 +30-82,99-99 +94-94,42-94 +4-98,5-98 +41-82,40-83 +1-92,97-99 +40-43,31-39 +60-96,59-68 +90-90,90-95 +22-24,22-97 +13-98,98-99 +56-86,85-85 +89-92,93-93 +80-80,4-81 +67-98,66-87 +5-97,6-97 +20-67,68-68 +6-18,4-6 +31-71,32-32 +14-25,13-39 +90-90,9-91 +4-80,51-79 +59-88,15-99 +27-76,28-28 +7-47,48-48 +15-94,16-89 +15-50,16-50 +31-56,2-32 +14-62,15-61 +9-99,9-97 +82-92,11-82 +3-33,3-32 +9-79,51-78 +63-80,36-63 +57-60,57-82 +51-53,52-89 +11-20,44-98 +41-79,36-41 +61-79,74-79 +20-55,54-70 +49-51,17-50 +15-20,15-19 +46-75,47-74 +38-65,34-39 +86-89,37-85 +4-85,3-3 +8-76,2-76 +62-73,45-73 +29-31,29-53 +76-78,25-77 +11-98,11-11 +17-93,18-94 +4-12,5-12 +15-75,18-76 +1-14,1-3 +35-98,34-99 +2-34,34-67 +18-23,18-68 +68-70,39-69 +64-86,85-87 +22-94,5-64 +12-95,13-95 +88-88,68-87 +15-82,30-50 +11-26,25-27 +12-12,11-53 +15-47,48-48 +56-63,62-83 +36-98,35-98 +29-46,30-47 +64-64,50-64 +4-67,9-67 +71-95,67-94 +58-66,57-63 +55-71,56-70 +7-10,7-11 +17-91,90-90 +81-81,41-81 +1-24,1-5 +69-98,98-98 +15-85,14-85 +75-95,33-51 +13-67,17-66 +22-46,23-63 +3-94,3-4 +11-81,81-83 +79-92,80-80 +5-79,5-80 +67-75,66-96 +51-75,76-76 +12-74,13-73 +4-11,10-65 +17-61,8-11 +63-63,9-64 +38-38,23-38 +15-89,19-80 +95-96,74-95 +79-81,63-80 +89-89,39-88 +7-41,8-41 +16-23,22-96 +7-50,8-98 +30-75,31-74 +30-30,30-89 +52-53,52-78 +15-16,21-40 +3-37,13-38 +18-61,19-32 +78-79,1-78 +40-65,66-98 +2-72,67-71 +7-9,8-88 +26-61,25-25 +49-91,49-92 +2-24,2-94 +10-43,10-44 +73-80,6-79 +65-66,66-66 +24-31,31-32 +4-23,40-58 +4-86,1-1 +1-93,1-1 +7-8,7-83 +53-53,35-52 +7-7,6-71 +8-77,76-77 +11-33,11-42 +66-66,67-67 +35-53,34-52 +23-23,23-68 +9-20,10-15 +16-74,15-83 +20-82,58-81 +19-84,82-84 +50-77,50-77 +5-7,7-71 +18-93,52-92 +77-93,89-99 +43-43,42-43 +4-64,1-83 +8-74,74-75 +29-62,29-94 +8-50,1-9 +9-99,8-61 +5-98,4-98 +17-79,79-80 +53-84,54-85 +36-78,37-79 +45-74,46-73 +43-64,44-65 +39-45,38-72 +13-32,12-96 +5-5,5-84 +66-96,67-81 +84-84,24-83 +27-66,65-67 +12-46,64-72 +34-94,95-95 +10-89,10-11 +4-72,3-71 +13-38,12-16 +15-92,92-93 +16-16,17-74 +89-89,88-88 +5-65,6-65 +63-87,64-86 +19-86,18-86 +72-72,51-73 +64-95,65-65 +15-92,15-16 +48-86,49-86 +96-98,2-97 +99-99,2-97 +52-61,51-51 +80-92,13-93 +95-97,89-96 +49-54,54-59 +63-99,62-89 +4-88,3-88 +8-56,8-56 +10-31,30-32 +44-44,26-43 +81-93,40-91 +34-60,60-61 +22-80,12-23 +46-84,78-85 +22-83,22-71 +16-98,19-94 +34-47,39-46 +1-12,73-81 +12-98,12-48 +13-91,21-59 +26-65,26-66 +33-33,33-55 +6-99,7-98 +12-12,12-67 +11-68,1-95 +82-94,6-83 +62-70,61-94 +9-9,10-76 +23-93,93-93 +65-87,64-87 +86-88,19-87 +91-92,3-96 +8-93,93-94 +4-29,4-18 +10-23,22-35 +7-18,18-56 +23-82,7-11 +60-75,39-49 +9-78,19-77 +42-86,41-41 +24-24,39-99 +92-92,4-91 +3-12,4-14 +17-65,29-66 +44-91,92-93 +3-96,2-97 +5-92,4-93 +74-76,36-75 +8-65,6-9 +11-84,78-85 +50-50,30-57 +5-77,1-2 +31-94,93-95 +40-71,41-70 +90-92,4-91 +9-66,80-87 +30-57,57-86 +26-34,27-34 +38-84,37-85 +65-74,65-66 +60-84,3-85 +4-63,3-93 +61-93,62-62 +18-24,18-19 +7-12,11-13 +60-70,60-61 +4-57,4-63 +21-30,29-62 +49-89,48-90 +9-97,96-98 +1-97,3-94 +4-93,4-94 +3-96,7-81 +2-2,2-86 +4-8,1-8 +28-33,53-82 +20-91,19-91 +1-88,20-76 +8-70,3-16 +13-63,63-71 +4-71,71-72 +14-88,89-89 +8-87,5-9 +6-63,47-62 +61-99,61-99 +22-26,21-84 +47-86,47-51 +9-15,4-14 +2-67,3-66 +22-94,23-94 +21-86,20-86 +24-68,24-64 +38-38,38-56 +43-99,33-44 +85-86,53-85 +69-69,12-69 +11-12,30-98 +28-58,25-28 +27-94,28-98 +7-94,99-99 +35-91,17-92 +92-92,19-91 +12-94,40-93 +18-82,18-19 +3-96,2-97 +43-71,44-70 +39-82,40-83 +6-52,24-52 +19-51,20-52 +26-53,48-54 +15-99,14-16 +5-12,11-97 +12-86,86-87 +27-27,26-94 +14-15,18-87 +20-46,37-90 +12-61,12-13 +25-25,19-25 +93-97,13-92 +1-10,10-11 +25-34,25-30 +53-59,54-59 +25-92,66-93 +6-6,5-40 +2-31,1-32 +5-5,6-76 +19-99,9-98 +12-92,11-91 +3-33,58-90 +19-64,33-63 +10-54,10-55 +8-8,9-90 +16-90,15-90 +82-94,82-83 +12-77,27-64 +14-37,15-36 +63-83,74-84 +7-98,7-93 +7-87,23-88 +9-95,4-9 +42-46,80-89 +7-92,8-91 +7-14,7-20 +43-91,42-42 +53-81,1-82 +8-80,6-20 +19-59,5-58 +29-90,13-29 +29-90,28-30 +89-95,18-96 +76-76,21-75 +28-97,27-97 +28-91,27-91 +5-89,12-85 +62-63,20-62 +33-90,33-98 +12-53,11-54 +31-66,67-67 +60-90,61-91 +8-8,10-83 +50-82,36-83 +54-95,55-96 +42-80,43-81 +40-40,40-75 +10-69,9-27 +43-47,26-34 +44-75,12-76 +35-36,35-97 +6-25,5-25 +4-65,2-5 +70-71,50-70 +9-95,4-9 +38-75,38-39 +72-94,8-71 +30-97,30-31 +8-87,8-40 +19-59,18-59 +3-96,1-96 +4-69,3-99 +4-7,7-98 +16-94,93-94 +8-86,9-87 +23-97,23-98 +5-89,6-6 +15-32,15-15 +8-79,2-8 +6-22,7-22 +89-91,24-90 +57-85,7-86 +54-79,53-54 +96-97,7-97 +45-45,9-44 +28-98,46-97 +40-65,66-66 +12-26,13-26 +10-10,10-76 +29-59,28-59 +17-39,16-72 +69-70,70-81 +60-61,60-64 +18-56,18-95 +21-21,21-80 +15-36,15-95 +1-98,1-1 +61-65,60-66 +80-91,80-99 +42-81,65-82 +44-87,43-90 +12-90,11-90 +5-94,6-94 +81-81,44-80 +2-37,21-47 +26-81,30-81 +29-81,97-97 +7-79,3-78 +43-74,42-73 +3-77,3-74 +2-74,1-2 +46-68,14-46 +1-58,3-78 +46-70,13-52 +92-96,32-92 +32-81,31-80 +17-97,17-98 +40-75,75-76 +22-22,22-73 +13-96,13-95 +47-70,46-70 +21-56,22-22 +7-87,3-96 +12-48,13-48 +23-84,3-24 +20-98,20-99 +8-79,6-95 +6-62,2-98 +21-28,3-28 +67-69,59-68 +16-86,14-14 +25-77,25-26 +9-34,9-35 +8-13,14-14 +8-24,8-91 +8-76,6-75 +9-78,9-10 +19-82,7-19 +83-84,62-83 +16-86,17-86 +32-32,14-31 +24-73,23-99 +5-16,5-15 +7-99,8-98 +12-94,13-91 +37-38,37-92 +3-87,3-4 +10-96,10-93 +2-77,1-76 +61-87,37-70 +2-24,80-86 +3-97,3-17 +5-74,46-58 +76-78,40-77 +7-94,7-87 +15-31,31-32 +10-96,70-98 +4-51,52-90 +48-52,52-75 +19-46,18-47 +82-97,25-96 +15-54,8-15 +90-90,89-94 +16-91,16-65 +3-97,3-99 +6-90,6-91 +75-76,1-75 +9-9,8-86 +34-34,34-36 +94-94,42-93 +7-37,6-36 +5-5,5-67 +59-84,3-90 +26-26,25-99 +44-97,96-97 +41-77,42-57 +33-79,34-80 +68-70,68-68 +68-81,67-80 +4-93,4-5 +25-42,3-26 +44-77,45-95 +38-97,96-98 +33-34,32-34 +90-93,89-89 +21-60,60-85 +44-91,20-95 +26-68,25-63 +17-18,17-73 +6-93,6-7 +26-31,27-32 +10-97,10-98 +33-84,33-92 +93-98,2-93 +39-92,39-91 +9-73,8-65 +10-89,9-62 +50-89,50-51 +35-98,99-99 +50-96,24-87 +99-99,25-96 +37-78,4-79 +2-10,10-11 +13-71,11-14 +51-76,7-76 +38-52,42-51 +10-91,3-11 +7-78,3-79 +5-7,3-3 +28-50,17-50 +39-62,4-15 +6-97,5-98 +63-91,23-99 +12-93,11-19 +52-93,73-99 +12-95,12-12 +13-28,27-84 +83-85,12-84 +26-99,26-27 +58-62,57-88 +27-43,44-44 +43-96,20-44 +34-61,59-60 +44-75,43-75 +1-99,5-93 +17-99,18-98 +84-90,85-89 +5-49,1-5 +26-74,43-74 +65-93,65-90 +18-84,11-19 +15-15,14-83 +19-97,19-96 +2-95,4-95 +84-84,85-85 +7-53,53-56 +2-2,3-60 +24-48,48-72 +1-1,1-97 +15-29,16-20 +1-20,19-50 +6-88,1-7 +14-47,13-13 +4-44,4-42 +7-98,7-12 +30-69,3-30 +73-82,81-83 +1-96,1-86 +4-4,3-48 +94-96,5-86 +29-73,29-30 +21-22,22-80 +97-98,29-98 +42-75,76-84 +86-92,85-93 +14-70,13-69 \ No newline at end of file diff --git a/2022/4/part1.ts b/2022/4/part1.ts new file mode 100644 index 0000000..0592200 --- /dev/null +++ b/2022/4/part1.ts @@ -0,0 +1,18 @@ + +const input = Deno.readTextFileSync("input"); + +let sum = 0; +for(const line of input.split("\n")) { + const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t)); + console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2); + console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2); + if(first1 <= second1 && first2 >= second2 || first1 >= second1 && first2 <= second2) { + sum++; + console.log(`${first1}-${first2},${second1}-${second2} yes`); + } else { + console.log(`${first1}-${first2},${second1}-${second2} no`); + } + console.log(); +} + +console.log(sum); \ No newline at end of file diff --git a/2022/4/part2.ts b/2022/4/part2.ts new file mode 100644 index 0000000..e66d639 --- /dev/null +++ b/2022/4/part2.ts @@ -0,0 +1,18 @@ + +const input = Deno.readTextFileSync("input"); + +let sum = 0; +for(const line of input.split("\n")) { + const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t)); + console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2); + console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2); + if(first1 >= second1 && first1 <= second2 || first2 >= second1 && first2 <= second2 || second1 >= first1 && second1 <= first2 || second2 >= first1 && second2 <= first2) { + sum++; + console.log(`${first1}-${first2},${second1}-${second2} yes`); + } else { + console.log(`${first1}-${first2},${second1}-${second2} no`); + } + console.log(); +} + +console.log(sum); \ No newline at end of file diff --git a/2022/4/testinput b/2022/4/testinput new file mode 100644 index 0000000..99a66c5 --- /dev/null +++ b/2022/4/testinput @@ -0,0 +1,6 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 \ No newline at end of file diff --git a/2022/5/input b/2022/5/input new file mode 100644 index 0000000..f8e58cb --- /dev/null +++ b/2022/5/input @@ -0,0 +1,512 @@ + [F] [Q] [Q] +[B] [Q] [V] [D] [S] +[S] [P] [T] [R] [M] [D] +[J] [V] [W] [M] [F] [J] [J] +[Z] [G] [S] [W] [N] [D] [R] [T] +[V] [M] [B] [G] [S] [C] [T] [V] [S] +[D] [S] [L] [J] [L] [G] [G] [F] [R] +[G] [Z] [C] [H] [C] [R] [H] [P] [D] + 1 2 3 4 5 6 7 8 9 + +move 3 from 5 to 2 +move 3 from 8 to 4 +move 7 from 7 to 3 +move 14 from 3 to 9 +move 8 from 4 to 1 +move 1 from 7 to 5 +move 2 from 6 to 4 +move 4 from 5 to 7 +move 1 from 3 to 6 +move 3 from 4 to 3 +move 1 from 4 to 1 +move 5 from 1 to 9 +move 1 from 4 to 6 +move 4 from 7 to 4 +move 15 from 9 to 2 +move 7 from 1 to 6 +move 3 from 3 to 5 +move 1 from 4 to 9 +move 2 from 5 to 3 +move 2 from 4 to 9 +move 4 from 1 to 6 +move 1 from 3 to 1 +move 1 from 3 to 2 +move 4 from 6 to 3 +move 24 from 2 to 8 +move 4 from 9 to 8 +move 1 from 1 to 3 +move 2 from 5 to 4 +move 1 from 2 to 4 +move 19 from 8 to 1 +move 5 from 3 to 9 +move 8 from 1 to 3 +move 3 from 4 to 1 +move 6 from 9 to 5 +move 2 from 3 to 4 +move 1 from 8 to 5 +move 2 from 4 to 6 +move 11 from 6 to 1 +move 8 from 8 to 7 +move 1 from 6 to 5 +move 13 from 1 to 3 +move 1 from 1 to 7 +move 2 from 7 to 8 +move 5 from 7 to 1 +move 2 from 8 to 4 +move 3 from 5 to 3 +move 11 from 3 to 1 +move 2 from 5 to 3 +move 2 from 5 to 3 +move 2 from 7 to 1 +move 7 from 3 to 1 +move 1 from 4 to 5 +move 1 from 6 to 4 +move 3 from 4 to 7 +move 3 from 7 to 1 +move 6 from 3 to 5 +move 1 from 5 to 9 +move 4 from 5 to 4 +move 2 from 3 to 4 +move 8 from 9 to 2 +move 5 from 4 to 6 +move 1 from 6 to 5 +move 1 from 4 to 9 +move 39 from 1 to 7 +move 7 from 2 to 6 +move 1 from 9 to 3 +move 1 from 2 to 7 +move 1 from 3 to 1 +move 5 from 7 to 3 +move 4 from 5 to 1 +move 19 from 7 to 9 +move 1 from 9 to 8 +move 1 from 9 to 7 +move 5 from 9 to 3 +move 6 from 6 to 7 +move 1 from 8 to 3 +move 4 from 1 to 4 +move 23 from 7 to 6 +move 1 from 1 to 6 +move 21 from 6 to 2 +move 3 from 4 to 8 +move 7 from 6 to 1 +move 1 from 4 to 9 +move 1 from 6 to 7 +move 6 from 1 to 2 +move 1 from 7 to 4 +move 15 from 2 to 8 +move 5 from 3 to 8 +move 22 from 8 to 7 +move 1 from 8 to 1 +move 5 from 3 to 4 +move 1 from 3 to 2 +move 1 from 1 to 2 +move 3 from 4 to 8 +move 3 from 8 to 9 +move 11 from 2 to 1 +move 2 from 1 to 4 +move 15 from 9 to 5 +move 22 from 7 to 3 +move 2 from 4 to 9 +move 3 from 4 to 2 +move 8 from 1 to 8 +move 6 from 8 to 6 +move 1 from 6 to 2 +move 3 from 6 to 9 +move 3 from 2 to 7 +move 4 from 2 to 9 +move 2 from 7 to 5 +move 1 from 1 to 7 +move 2 from 8 to 2 +move 2 from 7 to 5 +move 9 from 5 to 3 +move 8 from 5 to 2 +move 1 from 6 to 4 +move 1 from 6 to 9 +move 1 from 2 to 9 +move 2 from 5 to 1 +move 7 from 2 to 3 +move 1 from 4 to 3 +move 1 from 2 to 4 +move 5 from 3 to 4 +move 6 from 9 to 3 +move 1 from 2 to 6 +move 6 from 9 to 6 +move 2 from 1 to 8 +move 3 from 6 to 3 +move 2 from 8 to 6 +move 6 from 4 to 1 +move 14 from 3 to 9 +move 1 from 6 to 4 +move 3 from 3 to 9 +move 1 from 4 to 5 +move 10 from 9 to 6 +move 6 from 6 to 7 +move 2 from 1 to 8 +move 1 from 8 to 6 +move 16 from 3 to 2 +move 1 from 8 to 1 +move 1 from 7 to 1 +move 7 from 3 to 4 +move 1 from 6 to 5 +move 4 from 2 to 3 +move 5 from 4 to 9 +move 2 from 4 to 5 +move 4 from 7 to 4 +move 5 from 9 to 6 +move 2 from 5 to 4 +move 11 from 6 to 7 +move 1 from 6 to 8 +move 5 from 1 to 5 +move 2 from 6 to 4 +move 7 from 7 to 3 +move 1 from 8 to 6 +move 2 from 7 to 3 +move 1 from 1 to 3 +move 3 from 2 to 8 +move 9 from 2 to 5 +move 1 from 6 to 1 +move 1 from 4 to 8 +move 7 from 4 to 7 +move 8 from 5 to 6 +move 1 from 7 to 2 +move 1 from 7 to 4 +move 3 from 7 to 8 +move 1 from 2 to 3 +move 1 from 1 to 2 +move 1 from 1 to 7 +move 3 from 7 to 6 +move 11 from 6 to 2 +move 4 from 8 to 7 +move 2 from 8 to 7 +move 15 from 3 to 2 +move 7 from 9 to 4 +move 3 from 3 to 2 +move 4 from 4 to 7 +move 5 from 7 to 3 +move 3 from 4 to 6 +move 3 from 6 to 9 +move 1 from 4 to 2 +move 1 from 8 to 1 +move 2 from 3 to 7 +move 2 from 3 to 7 +move 23 from 2 to 5 +move 1 from 9 to 1 +move 1 from 7 to 9 +move 1 from 1 to 8 +move 8 from 7 to 1 +move 1 from 8 to 4 +move 1 from 4 to 2 +move 3 from 9 to 8 +move 1 from 7 to 9 +move 22 from 5 to 9 +move 1 from 8 to 5 +move 1 from 7 to 4 +move 1 from 4 to 5 +move 1 from 8 to 3 +move 2 from 9 to 3 +move 5 from 5 to 2 +move 5 from 5 to 4 +move 3 from 2 to 7 +move 1 from 7 to 3 +move 6 from 1 to 7 +move 4 from 3 to 1 +move 6 from 2 to 8 +move 1 from 5 to 6 +move 2 from 8 to 1 +move 12 from 9 to 4 +move 8 from 9 to 4 +move 1 from 2 to 9 +move 2 from 9 to 8 +move 3 from 2 to 8 +move 5 from 8 to 6 +move 7 from 7 to 1 +move 4 from 8 to 9 +move 1 from 6 to 1 +move 17 from 4 to 7 +move 1 from 2 to 4 +move 2 from 4 to 1 +move 6 from 4 to 6 +move 1 from 1 to 4 +move 7 from 1 to 5 +move 9 from 7 to 9 +move 8 from 9 to 8 +move 5 from 8 to 3 +move 1 from 5 to 6 +move 2 from 3 to 6 +move 1 from 9 to 1 +move 1 from 6 to 1 +move 10 from 6 to 1 +move 1 from 5 to 1 +move 2 from 9 to 1 +move 1 from 9 to 7 +move 2 from 6 to 8 +move 2 from 8 to 2 +move 1 from 6 to 8 +move 22 from 1 to 9 +move 9 from 7 to 5 +move 1 from 8 to 1 +move 2 from 8 to 3 +move 4 from 5 to 9 +move 1 from 8 to 3 +move 5 from 1 to 9 +move 2 from 7 to 3 +move 2 from 4 to 7 +move 1 from 8 to 5 +move 2 from 2 to 4 +move 1 from 5 to 8 +move 9 from 5 to 8 +move 2 from 7 to 5 +move 2 from 4 to 5 +move 3 from 8 to 4 +move 3 from 4 to 3 +move 2 from 8 to 6 +move 1 from 6 to 4 +move 3 from 5 to 9 +move 1 from 6 to 3 +move 12 from 3 to 5 +move 1 from 3 to 1 +move 7 from 5 to 4 +move 1 from 1 to 3 +move 1 from 8 to 1 +move 7 from 5 to 1 +move 6 from 9 to 6 +move 29 from 9 to 5 +move 2 from 4 to 6 +move 26 from 5 to 2 +move 24 from 2 to 7 +move 1 from 3 to 2 +move 8 from 1 to 7 +move 7 from 6 to 9 +move 2 from 5 to 3 +move 1 from 6 to 4 +move 3 from 8 to 5 +move 2 from 3 to 8 +move 2 from 2 to 8 +move 5 from 9 to 2 +move 27 from 7 to 2 +move 2 from 8 to 3 +move 2 from 9 to 5 +move 3 from 8 to 5 +move 2 from 7 to 4 +move 3 from 4 to 7 +move 2 from 3 to 2 +move 4 from 5 to 1 +move 5 from 7 to 2 +move 29 from 2 to 8 +move 9 from 8 to 3 +move 2 from 4 to 8 +move 7 from 3 to 2 +move 3 from 5 to 4 +move 1 from 7 to 5 +move 3 from 5 to 6 +move 2 from 1 to 8 +move 2 from 6 to 8 +move 3 from 4 to 2 +move 4 from 4 to 2 +move 1 from 6 to 8 +move 8 from 2 to 4 +move 2 from 3 to 5 +move 1 from 4 to 1 +move 3 from 1 to 2 +move 4 from 8 to 2 +move 3 from 4 to 9 +move 3 from 4 to 1 +move 2 from 9 to 5 +move 1 from 4 to 6 +move 4 from 5 to 1 +move 1 from 6 to 8 +move 1 from 9 to 3 +move 4 from 2 to 3 +move 15 from 8 to 2 +move 9 from 8 to 1 +move 1 from 3 to 9 +move 5 from 1 to 9 +move 3 from 9 to 7 +move 2 from 7 to 6 +move 3 from 3 to 2 +move 1 from 7 to 8 +move 1 from 9 to 6 +move 1 from 9 to 8 +move 2 from 8 to 2 +move 1 from 1 to 2 +move 1 from 3 to 7 +move 4 from 1 to 7 +move 19 from 2 to 5 +move 1 from 1 to 4 +move 1 from 7 to 4 +move 1 from 1 to 5 +move 3 from 1 to 4 +move 1 from 1 to 8 +move 6 from 2 to 4 +move 7 from 2 to 1 +move 2 from 7 to 9 +move 8 from 2 to 8 +move 2 from 7 to 3 +move 1 from 6 to 4 +move 10 from 4 to 6 +move 5 from 6 to 7 +move 2 from 9 to 8 +move 6 from 8 to 9 +move 1 from 2 to 3 +move 2 from 8 to 3 +move 5 from 1 to 8 +move 8 from 5 to 2 +move 8 from 8 to 7 +move 7 from 2 to 8 +move 1 from 1 to 2 +move 1 from 9 to 7 +move 1 from 4 to 2 +move 2 from 2 to 6 +move 5 from 9 to 3 +move 2 from 8 to 6 +move 2 from 3 to 9 +move 4 from 8 to 6 +move 7 from 6 to 1 +move 8 from 1 to 5 +move 1 from 8 to 7 +move 1 from 9 to 6 +move 12 from 5 to 3 +move 1 from 4 to 8 +move 2 from 9 to 5 +move 1 from 2 to 3 +move 3 from 5 to 1 +move 1 from 1 to 5 +move 21 from 3 to 8 +move 2 from 1 to 5 +move 6 from 5 to 7 +move 2 from 5 to 6 +move 10 from 6 to 9 +move 1 from 6 to 8 +move 13 from 8 to 2 +move 2 from 5 to 4 +move 2 from 4 to 3 +move 4 from 9 to 1 +move 5 from 7 to 8 +move 12 from 8 to 1 +move 5 from 9 to 6 +move 1 from 3 to 7 +move 2 from 6 to 5 +move 11 from 2 to 1 +move 1 from 8 to 4 +move 16 from 1 to 9 +move 1 from 2 to 6 +move 1 from 8 to 5 +move 12 from 9 to 3 +move 14 from 7 to 2 +move 1 from 7 to 9 +move 1 from 4 to 2 +move 1 from 7 to 5 +move 3 from 9 to 5 +move 4 from 6 to 9 +move 3 from 9 to 4 +move 1 from 8 to 4 +move 2 from 4 to 5 +move 1 from 7 to 1 +move 5 from 3 to 5 +move 2 from 4 to 2 +move 8 from 2 to 7 +move 7 from 2 to 4 +move 1 from 3 to 7 +move 3 from 9 to 7 +move 2 from 2 to 9 +move 3 from 4 to 5 +move 6 from 1 to 8 +move 6 from 1 to 5 +move 3 from 9 to 2 +move 22 from 5 to 9 +move 1 from 5 to 6 +move 2 from 2 to 3 +move 5 from 7 to 6 +move 5 from 8 to 9 +move 2 from 7 to 2 +move 20 from 9 to 4 +move 1 from 8 to 3 +move 2 from 2 to 5 +move 1 from 2 to 5 +move 15 from 4 to 8 +move 1 from 5 to 7 +move 6 from 9 to 1 +move 5 from 4 to 8 +move 2 from 4 to 8 +move 1 from 2 to 1 +move 5 from 6 to 5 +move 5 from 5 to 7 +move 1 from 9 to 8 +move 5 from 7 to 2 +move 2 from 5 to 1 +move 4 from 7 to 5 +move 1 from 5 to 9 +move 1 from 6 to 8 +move 1 from 7 to 2 +move 6 from 3 to 4 +move 3 from 5 to 7 +move 1 from 9 to 2 +move 6 from 2 to 3 +move 1 from 3 to 4 +move 13 from 8 to 9 +move 7 from 1 to 5 +move 6 from 9 to 2 +move 1 from 1 to 4 +move 6 from 2 to 3 +move 1 from 1 to 4 +move 5 from 9 to 7 +move 11 from 8 to 4 +move 7 from 7 to 3 +move 2 from 7 to 8 +move 1 from 8 to 2 +move 8 from 4 to 1 +move 2 from 1 to 6 +move 2 from 5 to 8 +move 3 from 1 to 9 +move 1 from 8 to 2 +move 11 from 3 to 2 +move 2 from 8 to 9 +move 9 from 4 to 7 +move 11 from 3 to 8 +move 7 from 9 to 6 +move 5 from 4 to 6 +move 3 from 7 to 3 +move 1 from 7 to 1 +move 5 from 7 to 6 +move 2 from 3 to 5 +move 1 from 3 to 4 +move 5 from 2 to 5 +move 1 from 1 to 7 +move 1 from 4 to 8 +move 1 from 7 to 6 +move 7 from 5 to 7 +move 2 from 5 to 7 +move 3 from 1 to 7 +move 1 from 2 to 3 +move 1 from 6 to 4 +move 1 from 3 to 4 +move 1 from 5 to 3 +move 18 from 6 to 4 +move 9 from 7 to 1 +move 14 from 4 to 6 +move 3 from 6 to 4 +move 12 from 6 to 7 +move 2 from 5 to 3 +move 3 from 7 to 4 +move 6 from 4 to 7 +move 5 from 1 to 7 +move 5 from 4 to 5 +move 5 from 2 to 1 +move 9 from 8 to 4 +move 9 from 1 to 3 +move 2 from 8 to 2 +move 4 from 2 to 4 +move 1 from 7 to 6 +move 1 from 2 to 3 +move 1 from 8 to 9 +move 1 from 6 to 9 +move 2 from 9 to 3 +move 3 from 4 to 1 +move 13 from 3 to 5 +move 12 from 5 to 1 +move 7 from 1 to 8 +move 1 from 3 to 6 +move 4 from 5 to 4 +move 1 from 5 to 2 +move 8 from 4 to 9 diff --git a/2022/5/part1.ts b/2022/5/part1.ts new file mode 100644 index 0000000..292cc73 --- /dev/null +++ b/2022/5/part1.ts @@ -0,0 +1,39 @@ + +const file = Deno.readTextFileSync("./input"); + +const [arrangement, moves] = file.split("\n\n"); + +const list: string[][] = []; +function visualize() { + console.log( + list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n") + ) +} + +for(const line of arrangement.split("\n")) { + if(line[1] == "1") break; + for(let i = 0; i < line.length; i+=4) { + const letter = line[i + 1]; + if(letter == " ") continue; + const num = i/4; + if(!list[num]) list[num] = []; + list[num].push(letter); + } +} + +visualize(); + +for(const move of moves.split("\n")) { + if(!move.startsWith("move")) break; + const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t)); + + console.log(); + console.log(`Move ${num} from ${src} to ${dest}`); + let moved = list[src - 1].splice(0, num).reverse(); + list[dest - 1].unshift(...moved); + console.log(moved); + visualize(); +} + +console.log(list) +visualize(); \ No newline at end of file diff --git a/2022/5/part2.ts b/2022/5/part2.ts new file mode 100644 index 0000000..c5d7f8e --- /dev/null +++ b/2022/5/part2.ts @@ -0,0 +1,39 @@ + +const file = Deno.readTextFileSync("./input"); + +const [arrangement, moves] = file.split("\n\n"); + +const list: string[][] = []; +function visualize() { + console.log( + list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n") + ) +} + +for(const line of arrangement.split("\n")) { + if(line[1] == "1") break; + for(let i = 0; i < line.length; i+=4) { + const letter = line[i + 1]; + if(letter == " ") continue; + const num = i/4; + if(!list[num]) list[num] = []; + list[num].push(letter); + } +} + +visualize(); + +for(const move of moves.split("\n")) { + if(!move.startsWith("move")) break; + const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t)); + + console.log(); + console.log(`Move ${num} from ${src} to ${dest}`); + let moved = list[src - 1].splice(0, num); + list[dest - 1].unshift(...moved); + console.log(moved); + visualize(); +} + +console.log(list) +visualize(); \ No newline at end of file diff --git a/2022/5/testinput b/2022/5/testinput new file mode 100644 index 0000000..e98aba4 --- /dev/null +++ b/2022/5/testinput @@ -0,0 +1,9 @@ + [D] +[N] [C] +[Z] [M] [P] + 1 2 3 + +move 1 from 2 to 1 +move 3 from 1 to 3 +move 2 from 2 to 1 +move 1 from 1 to 2 \ No newline at end of file diff --git a/2022/6/input b/2022/6/input new file mode 100644 index 0000000..4c21e87 --- /dev/null +++ b/2022/6/input @@ -0,0 +1 @@ +vftfrfcrfrpptffhnnnsznzgngqgsssczcjcdcssmgmtmnmqnmmfttbdttqtggmgpmmqrqzrzttptpdtpddqfdffgjgzjzczjcjjvttvmmrwmrwwjtwjttnccgbcbjbgjjcvvsqshszhzvhvsstjjljcczmzjmzzdtzzhfhvvvflljtllfqqdmmmhmfhffzhhtgtssqppgcppfjjrnngwwrvrvqvpppcspsrrsqqqlmmpcmcjmmjhmhzzpnnggmjjrprptpccdggcrrwfwggsfggbbqlqflqqcsqqccqzqbbnbmmlzllnhnwwsjsgstgttfdtffzfvzvbzzrlzlppcsctcncrncnjnfnqnvngnzzscslsppdqdbbthhqvqfvqqvccvdcddsllnwnqwwsccjmcjmmfmppnzpzffslffjrfjftftrffwcwppfsftssdwdzzffnwndnvnggbbfbgfbbfmbbjzzdqdtqtfqqpzzqpzpllvrrbqqbcqqzvznzmmwcwtwftwfwtftvtddhldldblbzlbzlllcjjwllvcllqplqplpzlzqzsqzsznnqwnqqrcqqnrrhmmqbqqlbqqrhrrdgrrsqssnwsnswsgsfsbbdhbdbqqtsqsbsmmbtmmghhcththrrnvvnlvvdvwwjwmwbmmvtvztzmtmrmprpvvmbmrbrsbbpsbbtccwgccbctbccjrjcjtccrrdnnwwqrwwjpjtptcpcfpfvfjjtqtnqqvzqqfhfrftrrgqgbqqtwwthwhqwqjqmmlglnlrnlrnnshsmspmmfnnqwqgwqqprpbbjbhjbbfqftfwwjhhcpcgcpcvppgfgcfgffbzbfzbzqzccmppndppspbssnbbpdpjpgpngpnggtztjzjdjhjmmwrmmqhhcvvvltvllvmvpvlplwplpmllgpllczlzpzczwzswwqgqbqppcjjhjddgccfmmctcjcscczzzjzwzjjsccdmdppdrdccmttjpttqvqdqtdqtqhqchhhtbbddmhhwdhdwdjdccnhcnndpdldvldlvddbjdbjbppjbpbssqnqnmmmclcggrmmdnnwmwddvjvdvrvzzglzlnnllhqqrbbcvvdtttdvvnfnqqstszsjsrscspszppfjjfttgqttdpdbbbvnndbdcdqdrdhhdhhdjjjzzhqqrcrvccrvrtvtnvnpppccpdpccjgjmjzzbsbgsbstsbbtdttrqtrrsrdrdcdjcddbcbjcbjbwbbslbbbbnmmtsmmrwrnwwqtqzqpprhrzhrhhldddrpdrpdpwdpwdpwwlmmzssbwswppldlmddphhnfhhczhhqrrdgdjjdttztftzffdvddqnqvvlbbncnffssbnbfnnzbnznhzhdzzrqzzptzppsnsnzntzzfwfzzvrzrbzrbzrbzrrqqltqlqppbwppmvpmvpmmbnnbhbmbdmbbhmmngmgmhgmghhvttzzfvfggrrchrrbffzjzlzsllbqqhqrrmqrrlzzsqzqqmhhmnmtntstnsnhsnnwwpdphhgjhjccbcqcjcbjbttmssqffjzjmzmqqrbbfnffcbfcfzfrzztftntbntttlddvwdvdcdhcdhdbbjfjzjwpbcvlqvcwjrcjssdfmgwrhrjvhpgqsbtzqqdwjrqsjplqjdzdcrtvqlcrfpcgwpjnbpcmbwnwbzhcvjvzzpvqnzdqdgpfrvdpfdmpprmzmghdfjjzfqjqcbplwntzmsrpqclgrqzhlsgwffqqntswnjsmrcpjlsvdrmcwdgqzsbsbvhbszqgwqffcgbqmjrfjdvbpwbrzwbjgvvjchwfscrhrtzbghjlcnsqqhdgqtdcqrrpsbzqvjwptblszrtffhwcvbngnsdjgpscfzwrncwlpfqgwdzffsqmjcbrlffftpvhjchmgmgqvjnpfsjnfzddqjsfqcpjgfrfgrtlmtfqphjfmdcvmghrdqvbbbhlstgpcgmqnwpdjwbrdbntbpncnztmnmzmsjzrwjmccqslngrvbjcjjgcvnvhsslfhwpwtjjcwgzqpdvqrlbttnnwdphztmwcdlvlqggrdprmzdfpbfhmsgqznzjhdqpmhfphqcvbfqmhnfpcvstrhdbtmljnnhqtfnpdwnszfrflsbbqjsvbvggzfhlcljwlrlfnlwlzzllzbqftlwzqsvwlldslnfnnbhlwmhqhrjlqzpdsjlhjncpwtnpnqvjtzzjnmdntmbjbcwphplbcwdfcqbhhnjnjsfplgwbrqpqmghnzvdprtlmgvwhdgpdwfvdtqtnqdvbntmsrhftwvrgwcbvhnwmhfggdzfgbdfqsbngmvjgssclqlhqggwndzzhcrzrmnzggnvbbbpzfdjtnlvlnprjtlljhtdqjlddmjdswjrwhwdbbbrmpwsgpfgnplbtzfzlvgnfrvvnbjtsglbzmtmcjbbjclmjgtdrrbpbbqzqnvrgqssfrwhrtpsbgsvnnfbmqgbvhshmpqtqljlpwptqzprdbgnzmlgtrvgnmmfhtccsvbmsfnlnzwhrmcnwmmhgwclghgmspwjvbgqrbbhhrglstdntwnvcgdcmwgbwrwhsqzsdnqsvmcbzrvtztspshrfmqbtrdtnsqdllqzdcbmvbdswzrrzchqgpgmhvjgwgnpqfwcmchsnqssnnslzwtwvbqjfbhlbdjzjrqjvsshcvcbwhsvvwtmjwjfgszmvfzclbqjhnczqcznprwzjnlgmdgbfjnrqfgvstcldnttbjmhsqgqlmzqtsqngvmdvrwcjtfljzdmnndnrbqnlqtmsqngflwsghzzsfcdnttpblqqhmtgnqmcdfmclsvgnsfpnnfssqzjtdsjbjnnmqhfctlddtwrqlpczlzvhddrtjfwgqhfcvchzqgfhdbfpbvtqcjvchqmwhvwjrbtcjgbfqjdsbfpgjrzvlgqwphshnqrvqsppgsnfswvrzpwmdfmmwntnsddzppffjvbnshhqgwclvtpjzvlbdzblhhmhrmjrpmltglsdffnstsdqwjhnjccqhbdrgnwmpwczflfvsbznpphgpbfzffbcdnbrqbwddlhvgqsdmdhmlzbdztrrswsbvdgptvhhcdtwzqqhzqpswwvftppwvwhrspfqwppjbdlhcchlftjhrpwhtvqhmwwtcbfhgbqzvzdlwlzwcsqgvmmsnhrfmwwpcrjlsgzmgdqstlwbzrzbqfnpqffmjqbqqzcnsqrfstnwjflwlpfgcjwjdvtjslrcpgwsvrbvjtzqvnjlqrvvwjhzbzqqjhcrbdtwqjbtmwfrmcgnbdcrhrvlcgrgtglpfmvpgwbzccddlrbsjzwbgwthhdmjjtpchtsbnnpgqfcpmsrgvqwhcdqzmtzlzbfdgmvtqzzdcrnhtlcwnmhdjtwdsrfnlmwpnfwdrptclvwrnwrnntwwqvfmjgswbtqcvmbfbgstvsntndzhjjnjfblqdqrgchchtgdwtvlqzrlpsqgbltjzjngdscdczwzhnlszpdnvnbrmfmjpdzvjfgvtwtpwdjjfgspbvtdjrwzncdpbsthgcwvvdbbvpvqdqpzjmlzhtjmjwmzsmrcstrsvbccqhppwrtmslggqbgglgrgffrbwzmbghfqclwwgssgghqjgfjgvwjhhwnntnrnhmfslqpmwzlggsbmrjjgfzfpjlvmshfsdjtshdlfzvjtlqwjbbgmnjhrhtpbgvcsjvwzlqvfchhpfwsbhcztmdgfzgsmszwfbvvgmgpqsrbzvtpmpqdvhgrjmmspnswjrjnjqfgjwsfbzhwhtlfwjfdhgsvcwqlbznqlnhsmzwltfwclcwgjdbhqvjbbchmcpptmpdqzwpfwrbmchpbqndtmdrwtcvlmrrnvhnpzwqcwwgmcblzvnzbzsspwchtqvjmphqtzgwdzqlbvgdjbssdjwljhlsjwzrdvqtrzcdwszqgfdwgnqdrmssqqhtblqzdhtqtqmlbbfhzvlbrphcjhzpvvshjffnsjcbgvngnsjmfdbgfzphjc diff --git a/2022/6/part1.ts b/2022/6/part1.ts new file mode 100644 index 0000000..60f430b --- /dev/null +++ b/2022/6/part1.ts @@ -0,0 +1,9 @@ + +const input: string = Deno.readTextFileSync("input"); + +for(let i = 4; i < input.length; i++) { + let last = input.slice(i - 4, i); + if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue; + console.log(last, i); + break; +} \ No newline at end of file diff --git a/2022/6/part2.ts b/2022/6/part2.ts new file mode 100644 index 0000000..4241e15 --- /dev/null +++ b/2022/6/part2.ts @@ -0,0 +1,9 @@ + +const input: string = Deno.readTextFileSync("input"); + +for(let i = 14; i < input.length; i++) { + let last = input.slice(i - 14, i); + if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue; + console.log(last, i); + break; +} \ No newline at end of file diff --git a/2022/6/testinput b/2022/6/testinput new file mode 100644 index 0000000..9e3311c --- /dev/null +++ b/2022/6/testinput @@ -0,0 +1 @@ +bvwbjplbgvbhsrlpgdmjqwftvncz \ No newline at end of file diff --git a/2022/7/input b/2022/7/input new file mode 100644 index 0000000..663eef9 --- /dev/null +++ b/2022/7/input @@ -0,0 +1,1045 @@ +$ cd / +$ ls +dir lhrfs +193233 mvsjmrtn +dir nwh +dir pjsd +dir qfrrtb +31987 zzdfcs +$ cd lhrfs +$ ls +197903 hzl.jdj +42249 wsbpzmbq.hws +$ cd .. +$ cd nwh +$ ls +63077 bgrccm.tqh +69961 dznccwl.bnw +dir pmdj +187013 rsbvj.jtd +$ cd pmdj +$ ls +292527 rlgfd.rrd +68737 tbj.grn +153072 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pjsd +$ ls +dir czzcslm +dir dgwpl +dir fqg +dir lszhdjr +dir mmpf +dir wtwhzzwz +149748 zzdfcs +$ cd czzcslm +$ ls +249237 bvrnzhd.vzp +16960 ssvqllt.ccv +$ cd .. +$ cd dgwpl +$ ls +23547 brsbfqbm.hls +dir ljzrwpv +$ cd ljzrwpv +$ ls +dir btnzjtlr +dir czr +$ cd btnzjtlr +$ ls +191998 tbj.mwg +$ cd .. +$ cd czr +$ ls +dir fqg +$ cd fqg +$ ls +276766 llhzr.pjh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +275942 bhcg +dir fqg +dir gghdbzz +dir hswgvpt +75273 hzl +dir lfpblmwt +dir sdcwn +dir wmrwd +$ cd fqg +$ ls +dir bpbtnq +267620 btnzjtlr.mgr +174395 fqg.vpw +dir tfbfgzw +dir twhvbbr +$ cd bpbtnq +$ ls +194542 mtztnd.hdb +$ cd .. +$ cd tfbfgzw +$ ls +dir cgdlflbt +10814 fqg.cqp +40235 fztb.jzr +dir hzl +$ cd cgdlflbt +$ ls +176005 wsbpzmbq.hws +$ cd .. +$ cd hzl +$ ls +dir ccpdp +dir hgwpjvn +dir hzl +203730 pbn.rzl +88179 tbj +295466 zdbmfmzs.jjh +$ cd ccpdp +$ ls +172836 btnzjtlr +$ cd .. +$ cd hgwpjvn +$ ls +122725 hnsrdnl.ctv +261470 tmgpjbj +$ cd .. +$ cd hzl +$ ls +59843 lffmd.fwr +$ cd .. +$ cd .. +$ cd .. +$ cd twhvbbr +$ ls +134874 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd gghdbzz +$ ls +dir fqg +$ cd fqg +$ ls +233336 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd hswgvpt +$ ls +dir fwfhnbc +dir hcp +221595 hnsrdnl.ctv +230875 hzl +257695 jbfnlc.qqn +126050 tbj.qlc +dir wdlh +$ cd fwfhnbc +$ ls +293848 zhz.mff +$ cd .. +$ cd hcp +$ ls +288118 gdndr.gwn +$ cd .. +$ cd wdlh +$ ls +227328 btnzjtlr.msq +dir hzl +94325 hzl.wjp +272466 zzdfcs +$ cd hzl +$ ls +184779 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd lfpblmwt +$ ls +151071 ssvqllt.ccv +$ cd .. +$ cd sdcwn +$ ls +61632 hzl.mvp +dir tbj +dir tdwc +dir tnjcf +dir tstqdt +$ cd tbj +$ ls +dir btnzjtlr +dir cwsv +1318 tbj +293645 wnv +$ cd btnzjtlr +$ ls +2441 hnsrdnl.ctv +$ cd .. +$ cd cwsv +$ ls +238930 gwr +236116 tlzqtch +$ cd .. +$ cd .. +$ cd tdwc +$ ls +dir btnzjtlr +dir fqg +dir zgjpfj +$ cd btnzjtlr +$ ls +177427 tbj.hgf +$ cd .. +$ cd fqg +$ ls +241003 dbnwzbn.flv +$ cd .. +$ cd zgjpfj +$ ls +249565 fqg +238012 tbj.csq +$ cd .. +$ cd .. +$ cd tnjcf +$ ls +188504 lljwfglp.wnb +35384 wsbpzmbq.hws +$ cd .. +$ cd tstqdt +$ ls +dir lszhdjr +$ cd lszhdjr +$ ls +252181 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wmrwd +$ ls +117914 btnzjtlr +224916 hnsrdnl.ctv +dir lszhdjr +112511 trjm.mrw +20365 trn +$ cd lszhdjr +$ ls +183834 sdnlhh.ntt +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +dir gjlms +dir hrwjmrwf +dir vblznslv +$ cd gjlms +$ ls +301712 bbs.fhq +dir btnzjtlr +148329 cnvlrpbs.tqv +dir hzl +107466 hzl.zps +dir jgflpb +9865 trjm.mrw +$ cd btnzjtlr +$ ls +60204 nhmc +$ cd .. +$ cd hzl +$ ls +99518 lszhdjr.stz +$ cd .. +$ cd jgflpb +$ ls +251545 hzl.ncm +$ cd .. +$ cd .. +$ cd hrwjmrwf +$ ls +65264 btnzjtlr.qgg +123207 pqsn +30133 zzdfcs +$ cd .. +$ cd vblznslv +$ ls +19460 hzl +$ cd .. +$ cd .. +$ cd mmpf +$ ls +200340 dnsq +109756 snl +$ cd .. +$ cd wtwhzzwz +$ ls +dir bpwjhpgr +dir btnzjtlr +dir dgqljsbq +dir fqg +dir mbbtzgmf +dir vvmzhhtv +dir wglhbp +dir zcwmf +$ cd bpwjhpgr +$ ls +1514 mjczjz +$ cd .. +$ cd btnzjtlr +$ ls +209165 lszhdjr +$ cd .. +$ cd dgqljsbq +$ ls +160750 btnzjtlr +dir fqg +dir hrncl +5964 hzvr.ftp +dir jldnlddj +267082 qdc.grf +205213 sjpdjt.ngt +dir vws +175214 wzwwqq.stp +$ cd fqg +$ ls +dir ghsdjhj +$ cd ghsdjhj +$ ls +166720 jqcjngn.fmf +298171 zzdfcs +$ cd .. +$ cd .. +$ cd hrncl +$ ls +dir hzl +82355 trjm.mrw +dir vrqbf +261260 wsbpzmbq.hws +18593 wtmlmprg.whh +$ cd hzl +$ ls +344 drndgmgz.flz +241877 zzdfcs +$ cd .. +$ cd vrqbf +$ ls +dir blf +dir pzrfw +dir tbj +$ cd blf +$ ls +68629 wdhfbtj.ncc +$ cd .. +$ cd pzrfw +$ ls +dir hzl +dir mdh +dir tbj +$ cd hzl +$ ls +12677 gvdh.ltp +$ cd .. +$ cd mdh +$ ls +222003 qbvfdv +$ cd .. +$ cd tbj +$ ls +dir wtmcqwgp +$ cd wtmcqwgp +$ ls +dir stcgrs +$ cd stcgrs +$ ls +285843 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd tbj +$ ls +173380 mcgzmthd.mdg +$ cd .. +$ cd .. +$ cd .. +$ cd jldnlddj +$ ls +57836 brdtwc.pws +dir fqg +dir hzl +140902 lbn +dir qhrcm +dir ssrc +169907 wsbpzmbq.hws +$ cd fqg +$ ls +273621 pwjr.gwt +$ cd .. +$ cd hzl +$ ls +dir fqg +dir tbj +$ cd fqg +$ ls +290882 hcf.sqw +62759 hlntl.zqg +115593 ntgm.wjn +64481 qwtv +$ cd .. +$ cd tbj +$ ls +199421 gsvpcdm +200467 hnsrdnl.ctv +9980 lgqgdvwz.zdp +dir lqlml +19593 pgn +51598 tqqbwd +$ cd lqlml +$ ls +92416 fdwgg.rdp +279285 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd qhrcm +$ ls +278543 trjm.mrw +279502 zzdfcs +$ cd .. +$ cd ssrc +$ ls +238789 zfvwwnhl +$ cd .. +$ cd .. +$ cd vws +$ ls +249170 bgfrh +dir ndtnt +$ cd ndtnt +$ ls +5224 qwdnzdq.rfz +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +171994 trjm.mrw +$ cd .. +$ cd mbbtzgmf +$ ls +dir cfqzlgm +57211 ssvqllt.ccv +dir tbj +$ cd cfqzlgm +$ ls +dir tlbgq +$ cd tlbgq +$ ls +232962 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd tbj +$ ls +23083 lszhdjr.lzt +$ cd .. +$ cd .. +$ cd vvmzhhtv +$ ls +150567 fcpv.vws +$ cd .. +$ cd wglhbp +$ ls +dir cjm +dir gjhzw +dir lmzzlp +123986 lszhdjr.hcj +275863 lwbz +121332 snnhqgp.tdj +dir stngv +dir wdzvcfm +dir wjqztbj +dir wzhsq +$ cd cjm +$ ls +300643 jhtjsn.hzm +$ cd .. +$ cd gjhzw +$ ls +dir hwlj +dir tbj +$ cd hwlj +$ ls +280279 ssvqllt.ccv +$ cd .. +$ cd tbj +$ ls +88746 ssvqllt.ccv +139206 tbj +$ cd .. +$ cd .. +$ cd lmzzlp +$ ls +9261 btnzjtlr +dir fqg +128118 fqg.fsf +165323 hnsrdnl.ctv +dir prvmm +$ cd fqg +$ ls +35303 dcglqd.zrj +71812 mvzh +32361 ssvqllt.ccv +69305 zzdfcs +$ cd .. +$ cd prvmm +$ ls +296946 zzdfcs +$ cd .. +$ cd .. +$ cd stngv +$ ls +dir hgj +46259 vlb.ztz +25946 zstwl.wgs +106712 zzdfcs +$ cd hgj +$ ls +289819 dhwr.mvc +85418 dvpvhhgj.fmw +108543 fqg.frj +229544 pwhwmctv +$ cd .. +$ cd .. +$ cd wdzvcfm +$ ls +dir sdphr +$ cd sdphr +$ ls +84638 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd wjqztbj +$ ls +240174 btnzjtlr.ldw +125567 lszhdjr +265718 lszhdjr.mmz +242407 wzjcc +$ cd .. +$ cd wzhsq +$ ls +dir hzl +22176 hzl.cpv +122990 ldtwhvc.vcv +$ cd hzl +$ ls +309519 plnn.pdn +$ cd .. +$ cd .. +$ cd .. +$ cd zcwmf +$ ls +dir hwq +268508 mztd +$ cd hwq +$ ls +189618 trjm.mrw +120145 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qfrrtb +$ ls +dir dmntr +dir fqg +dir gpcvsbpl +dir hzl +dir mqbhs +dir pgvngj +dir pnrdwlqn +dir qlnwhq +$ cd dmntr +$ ls +dir btnzjtlr +141598 fqg.wcw +223036 hnsrdnl.ctv +96925 qhwmj +257697 ssvqllt.ccv +184839 vmbfhldv.zgm +$ cd btnzjtlr +$ ls +153689 jnbthqwp +dir tcp +$ cd tcp +$ ls +90378 mczzfwsz.hwf +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +dir btq +51590 fqg +176455 gnqsnpj.vsh +dir mthwtst +dir trhz +dir zbpjvb +$ cd btq +$ ls +dir bdnc +dir ttpj +dir vftshfd +$ cd bdnc +$ ls +263358 trjm.mrw +$ cd .. +$ cd ttpj +$ ls +185501 fqg.dvq +151107 ltmmsr.lqd +dir mbtqmqh +231236 sdzp.qhb +16601 vfflgw.vrr +75487 zbvllh.gqb +$ cd mbtqmqh +$ ls +dir lszhdjr +184660 pmwswf.lrm +dir tbj +dir zqbss +262042 zzdfcs +$ cd lszhdjr +$ ls +dir dmc +$ cd dmc +$ ls +173189 mzmr.nrj +$ cd .. +$ cd .. +$ cd tbj +$ ls +59531 fjqfbq +$ cd .. +$ cd zqbss +$ ls +dir btnzjtlr +dir lszhdjr +14365 sqdj +$ cd btnzjtlr +$ ls +113619 trjm.mrw +$ cd .. +$ cd lszhdjr +$ ls +87142 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +dir jsdrvbhc +$ cd jsdrvbhc +$ ls +210295 hzl +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vftshfd +$ ls +dir jjws +dir mvdcjgp +dir qflcrlrm +$ cd jjws +$ ls +82848 trjm.mrw +$ cd .. +$ cd mvdcjgp +$ ls +231865 lzzl +$ cd .. +$ cd qflcrlrm +$ ls +150667 btnzjtlr +$ cd .. +$ cd .. +$ cd .. +$ cd mthwtst +$ ls +26308 lszhdjr.dbb +$ cd .. +$ cd trhz +$ ls +16138 swtdz.hdt +$ cd .. +$ cd zbpjvb +$ ls +69598 hnsrdnl.ctv +96314 tbj.gpj +$ cd .. +$ cd .. +$ cd gpcvsbpl +$ ls +dir dbssfzqt +dir pgn +dir zfgvldv +$ cd dbssfzqt +$ ls +156599 jcv +68192 zzdfcs +$ cd .. +$ cd pgn +$ ls +124613 fqg +139219 gmnqvlbb.nnf +177527 hnsrdnl.ctv +116238 hzl.qwm +dir tbj +69576 zzdfcs +$ cd tbj +$ ls +78863 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +76043 qjwjw.dbn +$ cd .. +$ cd .. +$ cd .. +$ cd zfgvldv +$ ls +dir tbj +$ cd tbj +$ ls +308796 gqcw.fsm +$ cd .. +$ cd .. +$ cd .. +$ cd hzl +$ ls +50784 btnzjtlr +19755 gjbcgphh.rbw +169847 lncnj.bct +46359 mbrtgl +dir nlnt +269695 wfg.cdn +$ cd nlnt +$ ls +dir cqfzqwr +dir dghdql +dir fnd +159573 hnsrdnl.ctv +dir lszhdjr +16814 tsm +59202 wsbpzmbq.hws +22244 zlbj +$ cd cqfzqwr +$ ls +213009 trjm.mrw +$ cd .. +$ cd dghdql +$ ls +61202 hnsrdnl.ctv +$ cd .. +$ cd fnd +$ ls +237330 hnsrdnl.ctv +$ cd .. +$ cd lszhdjr +$ ls +222813 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd mqbhs +$ ls +dir fqg +$ cd fqg +$ ls +121590 lcwsbvw.jlj +13769 zzdfcs +$ cd .. +$ cd .. +$ cd pgvngj +$ ls +29079 lnfsw.mvd +dir tbj +$ cd tbj +$ ls +303514 ssvqllt.ccv +81789 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pnrdwlqn +$ ls +145498 btnzjtlr.hdq +209811 fqg +dir gscsq +39287 jbln.grc +dir lszhdjr +dir zcj +$ cd gscsq +$ ls +dir btnzjtlr +257666 cmflqncq.csp +146453 lszhdjr.jvl +21252 ssvqllt.ccv +dir vjpgs +29627 zjgswm.zmw +$ cd btnzjtlr +$ ls +52870 fqg.bcq +131279 hnsrdnl.ctv +dir hts +180154 plgqz.lfz +118677 ssvqllt.ccv +143055 zzdfcs +$ cd hts +$ ls +295829 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd vjpgs +$ ls +247444 fqg.rjw +dir hzl +113248 tbj +$ cd hzl +$ ls +91966 ppff.qhn +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +290399 grzs.btl +11125 gswg +110268 mhdfszz.pdh +dir mwbjshb +dir ndtllttm +126485 wsbpzmbq.hws +152691 zzdfcs +$ cd mwbjshb +$ ls +119607 rpgml +$ cd .. +$ cd ndtllttm +$ ls +5107 qsqqfpc.mzf +$ cd .. +$ cd .. +$ cd zcj +$ ls +dir gftzs +131397 ssvqllt.ccv +dir vpqvpmv +dir wdqw +34540 wsbpzmbq.hws +$ cd gftzs +$ ls +115531 fbjj.vrn +$ cd .. +$ cd vpqvpmv +$ ls +dir bfqpwgdc +67619 ffbllv +dir tzr +$ cd bfqpwgdc +$ ls +144904 fqg.djq +dir gbn +dir jzz +dir vtp +$ cd gbn +$ ls +dir btnzjtlr +$ cd btnzjtlr +$ ls +dir dzsbcqjd +253792 fqg.fcw +209245 fqtqsdrt.pqd +303280 nqvqm +271246 vchvvq.cft +$ cd dzsbcqjd +$ ls +13953 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd jzz +$ ls +234810 ssvqllt.ccv +$ cd .. +$ cd vtp +$ ls +287225 rzqfq.pvj +$ cd .. +$ cd .. +$ cd tzr +$ ls +135596 bbzlnjtc.fft +dir bqfz +dir dztgr +306047 hnsrdnl.ctv +248180 jzdzf +dir lszhdjr +dir mds +dir nmdc +dir qpmt +126445 wsbpzmbq.hws +191907 zzdfcs +$ cd bqfz +$ ls +137988 fqg +122217 lszhdjr.bwc +232293 ssvqllt.ccv +168937 twrtmwh.ddc +$ cd .. +$ cd dztgr +$ ls +23653 qhrp.ljh +$ cd .. +$ cd lszhdjr +$ ls +dir ghqlj +dir qjjvfv +dir qsjrnq +$ cd ghqlj +$ ls +184316 ghshmzt.srl +258282 nbqndwj +dir ndd +dir tqqlnw +68843 trjm.mrw +92593 wllcqzfr.mbd +$ cd ndd +$ ls +152924 gvclc +77856 llztchwp.jjd +$ cd .. +$ cd tqqlnw +$ ls +4090 flvdsc.zsv +219378 vgwfn.zjh +$ cd .. +$ cd .. +$ cd qjjvfv +$ ls +230606 trjm.mrw +$ cd .. +$ cd qsjrnq +$ ls +252853 fnnbmt.dtm +279660 lszhdjr.rjc +$ cd .. +$ cd .. +$ cd mds +$ ls +10903 jzwjv +$ cd .. +$ cd nmdc +$ ls +114234 hnsrdnl.ctv +$ cd .. +$ cd qpmt +$ ls +171542 bvrzgp +129238 hnsrdnl.ctv +137570 tbj +54929 vtcfq.npn +44117 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd wdqw +$ ls +dir jmvsdlv +dir mjgpdcbl +$ cd jmvsdlv +$ ls +dir flnnqz +$ cd flnnqz +$ ls +224693 flqpwqp.fwn +$ cd .. +$ cd .. +$ cd mjgpdcbl +$ ls +140928 btnzjtlr.prd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qlnwhq +$ ls +dir btnzjtlr +dir cbhr +dir cnbssw +dir dwvv +dir lszhdjr +dir rnhnbs +dir sdhqp +$ cd btnzjtlr +$ ls +225671 ssrcp.chb +268250 tbj.cfd +$ cd .. +$ cd cbhr +$ ls +68468 qdqlml.qrj +$ cd .. +$ cd cnbssw +$ ls +dir tbj +187921 zscs +$ cd tbj +$ ls +307230 hzl +dir jbcnnvq +228268 lssvr.gfn +$ cd jbcnnvq +$ ls +277047 nztsr +$ cd .. +$ cd .. +$ cd .. +$ cd dwvv +$ ls +267743 btnzjtlr +dir fqg +68364 qznpsjp +dir wdr +230595 wsbpzmbq.hws +206 wtwwd.jnb +$ cd fqg +$ ls +260003 btnzjtlr.hjn +103775 btnzjtlr.ndh +200945 trjm.mrw +dir twpplmhh +$ cd twpplmhh +$ ls +dir tvrq +$ cd tvrq +$ ls +298383 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wdr +$ ls +248357 tbj +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +259605 lszhdjr.mvw +$ cd .. +$ cd rnhnbs +$ ls +297597 hnsrdnl.ctv +$ cd .. +$ cd sdhqp +$ ls +95362 wsbpzmbq.hws \ No newline at end of file diff --git a/2022/7/part1.ts b/2022/7/part1.ts new file mode 100644 index 0000000..ad872d7 --- /dev/null +++ b/2022/7/part1.ts @@ -0,0 +1,69 @@ + +const input = Deno.readTextFileSync("./input"); + +class File { + constructor(public name: string, public size: number) {} +} + +class Directory { + constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {} + + getSize(): number { + return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0); + } + + print(level = 0) { + console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")"); + for(const file of this.files) { + console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")"); + } + for(const folder of this.folders) { + folder.print(level + 1); + } + } +} + +let root: Directory = new Directory("", null, [], []); +let current = root; + +for(const line of input.split("\n")) { + if(line[0] === "$") { + if(line[2] === "c") { + let name = line.slice(5); + if(name === "/") current = root; + else if(name === "..") current = current.parent!; + else { + let folder = current.folders.find(folder => folder.name === name); + if(!folder) { + folder = new Directory(name, current, [], []); + current.folders.push(folder); + } + current = folder; + } + } + } else { + let [size, name] = line.split(" "); + if(size === "dir") { + const folder = new Directory(name, current, [], []); + current.folders.push(folder); + } else { + current.files.push(new File(name, parseInt(size))); + } + } +} + +root.print(); + +var acc = 0; + +function traverse(directory: Directory) { + let size = directory.getSize(); + if(size < 100000) { + acc += size; + } + for(const folder of directory.folders) { + traverse(folder); + } +} + +traverse(root); \ No newline at end of file diff --git a/2022/7/part2.ts b/2022/7/part2.ts new file mode 100644 index 0000000..b303fc0 --- /dev/null +++ b/2022/7/part2.ts @@ -0,0 +1,74 @@ + +const input = Deno.readTextFileSync("./input"); + +class File { + constructor(public name: string, public size: number) {} +} + +class Directory { + constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {} + + getSize(): number { + return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0); + } + + print(level = 0) { + console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")"); + for(const file of this.files) { + console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")"); + } + for(const folder of this.folders) { + folder.print(level + 1); + } + } +} + +let root: Directory = new Directory("", null, [], []); +let current = root; + +for(const line of input.split("\n")) { + if(line[0] === "$") { + if(line[2] === "c") { + let name = line.slice(5); + if(name === "/") current = root; + else if(name === "..") current = current.parent!; + else { + let folder = current.folders.find(folder => folder.name === name); + if(!folder) { + folder = new Directory(name, current, [], []); + current.folders.push(folder); + } + current = folder; + } + } + } else { + let [size, name] = line.split(" "); + if(size === "dir") { + const folder = new Directory(name, current, [], []); + current.folders.push(folder); + } else { + current.files.push(new File(name, parseInt(size))); + } + } +} + +root.print(); + +const MAX = 70000000; +const unused = MAX - root.getSize(); +const minimum = 30000000 - unused; + +let smallest: number | null = null; + +function traverse(directory: Directory) { + let size = directory.getSize(); + if(size > minimum && (smallest === null || size < smallest)) { + smallest = size; + } + for(const folder of directory.folders) { + traverse(folder); + } +} + +traverse(root); +console.log(smallest); \ No newline at end of file diff --git a/2022/7/rust/.idea/.gitignore b/2022/7/rust/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/2022/7/rust/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/2022/7/rust/.idea/misc.xml b/2022/7/rust/.idea/misc.xml new file mode 100644 index 0000000..3ce3588 --- /dev/null +++ b/2022/7/rust/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/modules.xml b/2022/7/rust/.idea/modules.xml new file mode 100644 index 0000000..8e518a5 --- /dev/null +++ b/2022/7/rust/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/rust.iml b/2022/7/rust/.idea/rust.iml new file mode 100644 index 0000000..c254557 --- /dev/null +++ b/2022/7/rust/.idea/rust.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/2022/7/rust/.idea/vcs.xml b/2022/7/rust/.idea/vcs.xml new file mode 100644 index 0000000..4fce1d8 --- /dev/null +++ b/2022/7/rust/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2022/7/rust/Cargo.lock b/2022/7/rust/Cargo.lock new file mode 100644 index 0000000..b21cc6a --- /dev/null +++ b/2022/7/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rust" +version = "0.1.0" diff --git a/2022/7/rust/Cargo.toml b/2022/7/rust/Cargo.toml new file mode 100644 index 0000000..1ec6963 --- /dev/null +++ b/2022/7/rust/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2022/7/rust/input b/2022/7/rust/input new file mode 100644 index 0000000..663eef9 --- /dev/null +++ b/2022/7/rust/input @@ -0,0 +1,1045 @@ +$ cd / +$ ls +dir lhrfs +193233 mvsjmrtn +dir nwh +dir pjsd +dir qfrrtb +31987 zzdfcs +$ cd lhrfs +$ ls +197903 hzl.jdj +42249 wsbpzmbq.hws +$ cd .. +$ cd nwh +$ ls +63077 bgrccm.tqh +69961 dznccwl.bnw +dir pmdj +187013 rsbvj.jtd +$ cd pmdj +$ ls +292527 rlgfd.rrd +68737 tbj.grn +153072 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pjsd +$ ls +dir czzcslm +dir dgwpl +dir fqg +dir lszhdjr +dir mmpf +dir wtwhzzwz +149748 zzdfcs +$ cd czzcslm +$ ls +249237 bvrnzhd.vzp +16960 ssvqllt.ccv +$ cd .. +$ cd dgwpl +$ ls +23547 brsbfqbm.hls +dir ljzrwpv +$ cd ljzrwpv +$ ls +dir btnzjtlr +dir czr +$ cd btnzjtlr +$ ls +191998 tbj.mwg +$ cd .. +$ cd czr +$ ls +dir fqg +$ cd fqg +$ ls +276766 llhzr.pjh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +275942 bhcg +dir fqg +dir gghdbzz +dir hswgvpt +75273 hzl +dir lfpblmwt +dir sdcwn +dir wmrwd +$ cd fqg +$ ls +dir bpbtnq +267620 btnzjtlr.mgr +174395 fqg.vpw +dir tfbfgzw +dir twhvbbr +$ cd bpbtnq +$ ls +194542 mtztnd.hdb +$ cd .. +$ cd tfbfgzw +$ ls +dir cgdlflbt +10814 fqg.cqp +40235 fztb.jzr +dir hzl +$ cd cgdlflbt +$ ls +176005 wsbpzmbq.hws +$ cd .. +$ cd hzl +$ ls +dir ccpdp +dir hgwpjvn +dir hzl +203730 pbn.rzl +88179 tbj +295466 zdbmfmzs.jjh +$ cd ccpdp +$ ls +172836 btnzjtlr +$ cd .. +$ cd hgwpjvn +$ ls +122725 hnsrdnl.ctv +261470 tmgpjbj +$ cd .. +$ cd hzl +$ ls +59843 lffmd.fwr +$ cd .. +$ cd .. +$ cd .. +$ cd twhvbbr +$ ls +134874 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd gghdbzz +$ ls +dir fqg +$ cd fqg +$ ls +233336 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd hswgvpt +$ ls +dir fwfhnbc +dir hcp +221595 hnsrdnl.ctv +230875 hzl +257695 jbfnlc.qqn +126050 tbj.qlc +dir wdlh +$ cd fwfhnbc +$ ls +293848 zhz.mff +$ cd .. +$ cd hcp +$ ls +288118 gdndr.gwn +$ cd .. +$ cd wdlh +$ ls +227328 btnzjtlr.msq +dir hzl +94325 hzl.wjp +272466 zzdfcs +$ cd hzl +$ ls +184779 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd lfpblmwt +$ ls +151071 ssvqllt.ccv +$ cd .. +$ cd sdcwn +$ ls +61632 hzl.mvp +dir tbj +dir tdwc +dir tnjcf +dir tstqdt +$ cd tbj +$ ls +dir btnzjtlr +dir cwsv +1318 tbj +293645 wnv +$ cd btnzjtlr +$ ls +2441 hnsrdnl.ctv +$ cd .. +$ cd cwsv +$ ls +238930 gwr +236116 tlzqtch +$ cd .. +$ cd .. +$ cd tdwc +$ ls +dir btnzjtlr +dir fqg +dir zgjpfj +$ cd btnzjtlr +$ ls +177427 tbj.hgf +$ cd .. +$ cd fqg +$ ls +241003 dbnwzbn.flv +$ cd .. +$ cd zgjpfj +$ ls +249565 fqg +238012 tbj.csq +$ cd .. +$ cd .. +$ cd tnjcf +$ ls +188504 lljwfglp.wnb +35384 wsbpzmbq.hws +$ cd .. +$ cd tstqdt +$ ls +dir lszhdjr +$ cd lszhdjr +$ ls +252181 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wmrwd +$ ls +117914 btnzjtlr +224916 hnsrdnl.ctv +dir lszhdjr +112511 trjm.mrw +20365 trn +$ cd lszhdjr +$ ls +183834 sdnlhh.ntt +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +dir gjlms +dir hrwjmrwf +dir vblznslv +$ cd gjlms +$ ls +301712 bbs.fhq +dir btnzjtlr +148329 cnvlrpbs.tqv +dir hzl +107466 hzl.zps +dir jgflpb +9865 trjm.mrw +$ cd btnzjtlr +$ ls +60204 nhmc +$ cd .. +$ cd hzl +$ ls +99518 lszhdjr.stz +$ cd .. +$ cd jgflpb +$ ls +251545 hzl.ncm +$ cd .. +$ cd .. +$ cd hrwjmrwf +$ ls +65264 btnzjtlr.qgg +123207 pqsn +30133 zzdfcs +$ cd .. +$ cd vblznslv +$ ls +19460 hzl +$ cd .. +$ cd .. +$ cd mmpf +$ ls +200340 dnsq +109756 snl +$ cd .. +$ cd wtwhzzwz +$ ls +dir bpwjhpgr +dir btnzjtlr +dir dgqljsbq +dir fqg +dir mbbtzgmf +dir vvmzhhtv +dir wglhbp +dir zcwmf +$ cd bpwjhpgr +$ ls +1514 mjczjz +$ cd .. +$ cd btnzjtlr +$ ls +209165 lszhdjr +$ cd .. +$ cd dgqljsbq +$ ls +160750 btnzjtlr +dir fqg +dir hrncl +5964 hzvr.ftp +dir jldnlddj +267082 qdc.grf +205213 sjpdjt.ngt +dir vws +175214 wzwwqq.stp +$ cd fqg +$ ls +dir ghsdjhj +$ cd ghsdjhj +$ ls +166720 jqcjngn.fmf +298171 zzdfcs +$ cd .. +$ cd .. +$ cd hrncl +$ ls +dir hzl +82355 trjm.mrw +dir vrqbf +261260 wsbpzmbq.hws +18593 wtmlmprg.whh +$ cd hzl +$ ls +344 drndgmgz.flz +241877 zzdfcs +$ cd .. +$ cd vrqbf +$ ls +dir blf +dir pzrfw +dir tbj +$ cd blf +$ ls +68629 wdhfbtj.ncc +$ cd .. +$ cd pzrfw +$ ls +dir hzl +dir mdh +dir tbj +$ cd hzl +$ ls +12677 gvdh.ltp +$ cd .. +$ cd mdh +$ ls +222003 qbvfdv +$ cd .. +$ cd tbj +$ ls +dir wtmcqwgp +$ cd wtmcqwgp +$ ls +dir stcgrs +$ cd stcgrs +$ ls +285843 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd tbj +$ ls +173380 mcgzmthd.mdg +$ cd .. +$ cd .. +$ cd .. +$ cd jldnlddj +$ ls +57836 brdtwc.pws +dir fqg +dir hzl +140902 lbn +dir qhrcm +dir ssrc +169907 wsbpzmbq.hws +$ cd fqg +$ ls +273621 pwjr.gwt +$ cd .. +$ cd hzl +$ ls +dir fqg +dir tbj +$ cd fqg +$ ls +290882 hcf.sqw +62759 hlntl.zqg +115593 ntgm.wjn +64481 qwtv +$ cd .. +$ cd tbj +$ ls +199421 gsvpcdm +200467 hnsrdnl.ctv +9980 lgqgdvwz.zdp +dir lqlml +19593 pgn +51598 tqqbwd +$ cd lqlml +$ ls +92416 fdwgg.rdp +279285 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd qhrcm +$ ls +278543 trjm.mrw +279502 zzdfcs +$ cd .. +$ cd ssrc +$ ls +238789 zfvwwnhl +$ cd .. +$ cd .. +$ cd vws +$ ls +249170 bgfrh +dir ndtnt +$ cd ndtnt +$ ls +5224 qwdnzdq.rfz +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +171994 trjm.mrw +$ cd .. +$ cd mbbtzgmf +$ ls +dir cfqzlgm +57211 ssvqllt.ccv +dir tbj +$ cd cfqzlgm +$ ls +dir tlbgq +$ cd tlbgq +$ ls +232962 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd tbj +$ ls +23083 lszhdjr.lzt +$ cd .. +$ cd .. +$ cd vvmzhhtv +$ ls +150567 fcpv.vws +$ cd .. +$ cd wglhbp +$ ls +dir cjm +dir gjhzw +dir lmzzlp +123986 lszhdjr.hcj +275863 lwbz +121332 snnhqgp.tdj +dir stngv +dir wdzvcfm +dir wjqztbj +dir wzhsq +$ cd cjm +$ ls +300643 jhtjsn.hzm +$ cd .. +$ cd gjhzw +$ ls +dir hwlj +dir tbj +$ cd hwlj +$ ls +280279 ssvqllt.ccv +$ cd .. +$ cd tbj +$ ls +88746 ssvqllt.ccv +139206 tbj +$ cd .. +$ cd .. +$ cd lmzzlp +$ ls +9261 btnzjtlr +dir fqg +128118 fqg.fsf +165323 hnsrdnl.ctv +dir prvmm +$ cd fqg +$ ls +35303 dcglqd.zrj +71812 mvzh +32361 ssvqllt.ccv +69305 zzdfcs +$ cd .. +$ cd prvmm +$ ls +296946 zzdfcs +$ cd .. +$ cd .. +$ cd stngv +$ ls +dir hgj +46259 vlb.ztz +25946 zstwl.wgs +106712 zzdfcs +$ cd hgj +$ ls +289819 dhwr.mvc +85418 dvpvhhgj.fmw +108543 fqg.frj +229544 pwhwmctv +$ cd .. +$ cd .. +$ cd wdzvcfm +$ ls +dir sdphr +$ cd sdphr +$ ls +84638 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd wjqztbj +$ ls +240174 btnzjtlr.ldw +125567 lszhdjr +265718 lszhdjr.mmz +242407 wzjcc +$ cd .. +$ cd wzhsq +$ ls +dir hzl +22176 hzl.cpv +122990 ldtwhvc.vcv +$ cd hzl +$ ls +309519 plnn.pdn +$ cd .. +$ cd .. +$ cd .. +$ cd zcwmf +$ ls +dir hwq +268508 mztd +$ cd hwq +$ ls +189618 trjm.mrw +120145 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qfrrtb +$ ls +dir dmntr +dir fqg +dir gpcvsbpl +dir hzl +dir mqbhs +dir pgvngj +dir pnrdwlqn +dir qlnwhq +$ cd dmntr +$ ls +dir btnzjtlr +141598 fqg.wcw +223036 hnsrdnl.ctv +96925 qhwmj +257697 ssvqllt.ccv +184839 vmbfhldv.zgm +$ cd btnzjtlr +$ ls +153689 jnbthqwp +dir tcp +$ cd tcp +$ ls +90378 mczzfwsz.hwf +$ cd .. +$ cd .. +$ cd .. +$ cd fqg +$ ls +dir btq +51590 fqg +176455 gnqsnpj.vsh +dir mthwtst +dir trhz +dir zbpjvb +$ cd btq +$ ls +dir bdnc +dir ttpj +dir vftshfd +$ cd bdnc +$ ls +263358 trjm.mrw +$ cd .. +$ cd ttpj +$ ls +185501 fqg.dvq +151107 ltmmsr.lqd +dir mbtqmqh +231236 sdzp.qhb +16601 vfflgw.vrr +75487 zbvllh.gqb +$ cd mbtqmqh +$ ls +dir lszhdjr +184660 pmwswf.lrm +dir tbj +dir zqbss +262042 zzdfcs +$ cd lszhdjr +$ ls +dir dmc +$ cd dmc +$ ls +173189 mzmr.nrj +$ cd .. +$ cd .. +$ cd tbj +$ ls +59531 fjqfbq +$ cd .. +$ cd zqbss +$ ls +dir btnzjtlr +dir lszhdjr +14365 sqdj +$ cd btnzjtlr +$ ls +113619 trjm.mrw +$ cd .. +$ cd lszhdjr +$ ls +87142 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +dir jsdrvbhc +$ cd jsdrvbhc +$ ls +210295 hzl +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vftshfd +$ ls +dir jjws +dir mvdcjgp +dir qflcrlrm +$ cd jjws +$ ls +82848 trjm.mrw +$ cd .. +$ cd mvdcjgp +$ ls +231865 lzzl +$ cd .. +$ cd qflcrlrm +$ ls +150667 btnzjtlr +$ cd .. +$ cd .. +$ cd .. +$ cd mthwtst +$ ls +26308 lszhdjr.dbb +$ cd .. +$ cd trhz +$ ls +16138 swtdz.hdt +$ cd .. +$ cd zbpjvb +$ ls +69598 hnsrdnl.ctv +96314 tbj.gpj +$ cd .. +$ cd .. +$ cd gpcvsbpl +$ ls +dir dbssfzqt +dir pgn +dir zfgvldv +$ cd dbssfzqt +$ ls +156599 jcv +68192 zzdfcs +$ cd .. +$ cd pgn +$ ls +124613 fqg +139219 gmnqvlbb.nnf +177527 hnsrdnl.ctv +116238 hzl.qwm +dir tbj +69576 zzdfcs +$ cd tbj +$ ls +78863 hnsrdnl.ctv +dir lszhdjr +$ cd lszhdjr +$ ls +76043 qjwjw.dbn +$ cd .. +$ cd .. +$ cd .. +$ cd zfgvldv +$ ls +dir tbj +$ cd tbj +$ ls +308796 gqcw.fsm +$ cd .. +$ cd .. +$ cd .. +$ cd hzl +$ ls +50784 btnzjtlr +19755 gjbcgphh.rbw +169847 lncnj.bct +46359 mbrtgl +dir nlnt +269695 wfg.cdn +$ cd nlnt +$ ls +dir cqfzqwr +dir dghdql +dir fnd +159573 hnsrdnl.ctv +dir lszhdjr +16814 tsm +59202 wsbpzmbq.hws +22244 zlbj +$ cd cqfzqwr +$ ls +213009 trjm.mrw +$ cd .. +$ cd dghdql +$ ls +61202 hnsrdnl.ctv +$ cd .. +$ cd fnd +$ ls +237330 hnsrdnl.ctv +$ cd .. +$ cd lszhdjr +$ ls +222813 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd mqbhs +$ ls +dir fqg +$ cd fqg +$ ls +121590 lcwsbvw.jlj +13769 zzdfcs +$ cd .. +$ cd .. +$ cd pgvngj +$ ls +29079 lnfsw.mvd +dir tbj +$ cd tbj +$ ls +303514 ssvqllt.ccv +81789 wsbpzmbq.hws +$ cd .. +$ cd .. +$ cd pnrdwlqn +$ ls +145498 btnzjtlr.hdq +209811 fqg +dir gscsq +39287 jbln.grc +dir lszhdjr +dir zcj +$ cd gscsq +$ ls +dir btnzjtlr +257666 cmflqncq.csp +146453 lszhdjr.jvl +21252 ssvqllt.ccv +dir vjpgs +29627 zjgswm.zmw +$ cd btnzjtlr +$ ls +52870 fqg.bcq +131279 hnsrdnl.ctv +dir hts +180154 plgqz.lfz +118677 ssvqllt.ccv +143055 zzdfcs +$ cd hts +$ ls +295829 hnsrdnl.ctv +$ cd .. +$ cd .. +$ cd vjpgs +$ ls +247444 fqg.rjw +dir hzl +113248 tbj +$ cd hzl +$ ls +91966 ppff.qhn +$ cd .. +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +290399 grzs.btl +11125 gswg +110268 mhdfszz.pdh +dir mwbjshb +dir ndtllttm +126485 wsbpzmbq.hws +152691 zzdfcs +$ cd mwbjshb +$ ls +119607 rpgml +$ cd .. +$ cd ndtllttm +$ ls +5107 qsqqfpc.mzf +$ cd .. +$ cd .. +$ cd zcj +$ ls +dir gftzs +131397 ssvqllt.ccv +dir vpqvpmv +dir wdqw +34540 wsbpzmbq.hws +$ cd gftzs +$ ls +115531 fbjj.vrn +$ cd .. +$ cd vpqvpmv +$ ls +dir bfqpwgdc +67619 ffbllv +dir tzr +$ cd bfqpwgdc +$ ls +144904 fqg.djq +dir gbn +dir jzz +dir vtp +$ cd gbn +$ ls +dir btnzjtlr +$ cd btnzjtlr +$ ls +dir dzsbcqjd +253792 fqg.fcw +209245 fqtqsdrt.pqd +303280 nqvqm +271246 vchvvq.cft +$ cd dzsbcqjd +$ ls +13953 tbj +$ cd .. +$ cd .. +$ cd .. +$ cd jzz +$ ls +234810 ssvqllt.ccv +$ cd .. +$ cd vtp +$ ls +287225 rzqfq.pvj +$ cd .. +$ cd .. +$ cd tzr +$ ls +135596 bbzlnjtc.fft +dir bqfz +dir dztgr +306047 hnsrdnl.ctv +248180 jzdzf +dir lszhdjr +dir mds +dir nmdc +dir qpmt +126445 wsbpzmbq.hws +191907 zzdfcs +$ cd bqfz +$ ls +137988 fqg +122217 lszhdjr.bwc +232293 ssvqllt.ccv +168937 twrtmwh.ddc +$ cd .. +$ cd dztgr +$ ls +23653 qhrp.ljh +$ cd .. +$ cd lszhdjr +$ ls +dir ghqlj +dir qjjvfv +dir qsjrnq +$ cd ghqlj +$ ls +184316 ghshmzt.srl +258282 nbqndwj +dir ndd +dir tqqlnw +68843 trjm.mrw +92593 wllcqzfr.mbd +$ cd ndd +$ ls +152924 gvclc +77856 llztchwp.jjd +$ cd .. +$ cd tqqlnw +$ ls +4090 flvdsc.zsv +219378 vgwfn.zjh +$ cd .. +$ cd .. +$ cd qjjvfv +$ ls +230606 trjm.mrw +$ cd .. +$ cd qsjrnq +$ ls +252853 fnnbmt.dtm +279660 lszhdjr.rjc +$ cd .. +$ cd .. +$ cd mds +$ ls +10903 jzwjv +$ cd .. +$ cd nmdc +$ ls +114234 hnsrdnl.ctv +$ cd .. +$ cd qpmt +$ ls +171542 bvrzgp +129238 hnsrdnl.ctv +137570 tbj +54929 vtcfq.npn +44117 zzdfcs +$ cd .. +$ cd .. +$ cd .. +$ cd wdqw +$ ls +dir jmvsdlv +dir mjgpdcbl +$ cd jmvsdlv +$ ls +dir flnnqz +$ cd flnnqz +$ ls +224693 flqpwqp.fwn +$ cd .. +$ cd .. +$ cd mjgpdcbl +$ ls +140928 btnzjtlr.prd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd qlnwhq +$ ls +dir btnzjtlr +dir cbhr +dir cnbssw +dir dwvv +dir lszhdjr +dir rnhnbs +dir sdhqp +$ cd btnzjtlr +$ ls +225671 ssrcp.chb +268250 tbj.cfd +$ cd .. +$ cd cbhr +$ ls +68468 qdqlml.qrj +$ cd .. +$ cd cnbssw +$ ls +dir tbj +187921 zscs +$ cd tbj +$ ls +307230 hzl +dir jbcnnvq +228268 lssvr.gfn +$ cd jbcnnvq +$ ls +277047 nztsr +$ cd .. +$ cd .. +$ cd .. +$ cd dwvv +$ ls +267743 btnzjtlr +dir fqg +68364 qznpsjp +dir wdr +230595 wsbpzmbq.hws +206 wtwwd.jnb +$ cd fqg +$ ls +260003 btnzjtlr.hjn +103775 btnzjtlr.ndh +200945 trjm.mrw +dir twpplmhh +$ cd twpplmhh +$ ls +dir tvrq +$ cd tvrq +$ ls +298383 ssvqllt.ccv +$ cd .. +$ cd .. +$ cd .. +$ cd wdr +$ ls +248357 tbj +$ cd .. +$ cd .. +$ cd lszhdjr +$ ls +259605 lszhdjr.mvw +$ cd .. +$ cd rnhnbs +$ ls +297597 hnsrdnl.ctv +$ cd .. +$ cd sdhqp +$ ls +95362 wsbpzmbq.hws \ No newline at end of file diff --git a/2022/7/rust/src/main.rs b/2022/7/rust/src/main.rs new file mode 100644 index 0000000..8cf0f0b --- /dev/null +++ b/2022/7/rust/src/main.rs @@ -0,0 +1,107 @@ +use std::borrow::Borrow; +use std::cell::RefCell; +use std::fs::File; +use std::io::{BufRead, BufReader}; +use std::rc::Rc; + +#[derive(Debug)] +enum VNode { + File(Rc), + Directory(Rc) +} + +#[derive(Debug)] +struct VFile { + name: String, + size: usize +} + +#[derive(Debug)] +struct VDirectory { + items: RefCell>, + name: String +} + +impl VNode { + fn get_size(&self) -> usize { + match self { + VNode::Directory(dir)=> { + dir.items.borrow().iter().map(|item| item.get_size()).sum() + }, + VNode::File(file) => file.size + } + } +} + +fn main() { + // read testinput line by line + let input_file = File::open("input").unwrap(); + let mut root = Rc::new(VDirectory { + items: RefCell::new(Vec::new()), + name: String::from("") + }); + let mut path = vec![root.clone()]; + + for line in BufReader::new(input_file).lines() { + let line = line.unwrap(); + if line.starts_with("$") { + if line.starts_with("$ cd") { + let name = line[5..].to_string(); + if name == "/" { + path = vec![root.clone()]; + continue; + } + if name == ".." { + path.pop(); + continue; + } + let directory = VDirectory { + items: RefCell::new(Vec::new()), + name + }; + let node = VNode::Directory(Rc::from(directory)); + path.last_mut().unwrap().items.borrow_mut().push(node); + let directory = match path.last_mut().unwrap().items.borrow_mut().last_mut().unwrap() { + VNode::File(_) => panic!("This should never happen"), + VNode::Directory(dir) => dir.clone() + }; + path.push(directory); + } + } else { + let size_string = line[0..line.find(" ").unwrap()].to_string(); + if size_string == "dir" { + continue; + } + let size = size_string.parse::().unwrap(); + let name = line[line.find(" ").unwrap() + 1..].to_string(); + let file = VFile { + name, + size + }; + let node = VNode::File(Rc::from(file)); + path.last_mut().unwrap().items.borrow_mut().push(node); + } + } + + dbg!(&root); + let root_node = VNode::Directory(root); + dbg!(root_node.get_size()); + + dbg!(get_size_if_smaller(&root_node)); +} + +fn get_size_if_smaller(node: &VNode) -> usize { + let node_size = node.get_size(); + match node { + VNode::Directory(dir) => { + let others = dir.items.borrow().iter().map(|item| get_size_if_smaller(item)).sum(); + println!("{} {} {} ", dir.name, node_size, others); + if node_size < 100000 { + node_size + others + } else { + others + } + }, + VNode::File(file) => 0 + } +} diff --git a/2022/7/rust/testinput b/2022/7/rust/testinput new file mode 100644 index 0000000..bcbb513 --- /dev/null +++ b/2022/7/rust/testinput @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd a +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k \ No newline at end of file diff --git a/2022/7/testinput b/2022/7/testinput new file mode 100644 index 0000000..bcbb513 --- /dev/null +++ b/2022/7/testinput @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd a +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k \ No newline at end of file diff --git a/2022/8/input b/2022/8/input new file mode 100644 index 0000000..7d4deb5 --- /dev/null +++ b/2022/8/input @@ -0,0 +1,99 @@ +201020000020303322022230330032044230113031313453252125532013420102412124020323433212213002201211011 +221122211131113232104233242130410414321444153244521454234151454403433303343014014211200020130201021 +102112213233022132323042313331110325141414514433444245122521543551413102221240240323013132010021012 +212122031103022003403234000212443324321434314422155233242453534233211343234422013224013220221331221 +120021002213013004322300004342351223253453131112554355354434514543424530141014330412112220012030100 +110030220312301221303240114023511313251235452554153313533532225523321252124201204244311022232032121 +121312201031322130110230412421442225245334123131515145212234133433233415522311231022134311321000221 +020100230031324430434024341335115412553414512562656363444145352221421522445422002030434102031122130 +220000230104403311312243233214515515435446342656324242626366645135422532125214432110131210310103230 +003003023131341211210331221223524241336226535362556324264636464225534143523153343232320341113023131 +112223200042240014101242254443335526426222663425434645266646256425232421555443522443343343040222212 +231012311120242400241444133551534245553543635524435534563436246556633523214513454134202402412222032 +220330240202202404535344311352665323254453226554432365224562355554363363151333234523041303220413221 +121002021430011334451344213364255233644624234666262534356622453454246624421544511143144103011020033 +202020322113024543532552542653345533456452562654645534656235562433434436334415143435524332020024003 +310110320114244152352314562242344252626553665353436643466362666566456525655324341215522140012022100 +110221133144051254241134634243634566337575354377753676574754763556336655255552215423315301120131010 +023103330131235322233516355555532625334656646336557633446767674554556336223544425443251340040433200 +132432123105353411452624322225325575374337563365746736564554336544355525366432631211232245344411413 +033132343444521244516544436535523466654537667544744476663746573636745636442363332524245254113330422 +240212240325552121365552256263733535565735746335463466567544543567734476366523225543133253533443332 +014040044113115313255646226444543555553356676643554577634743436547456666263336536224543412443204140 +400012201233335543436555243267766533635344636448755547767763564464353465424466233534541535134330223 +310321424323512214423252666345734663434464454477755755574766576757375645452364256455231125523143113 +120341315235134355553326253673657737467854647875554685867768888363564466744522656643243411411202421 +211424435534222552464542277754654673778574565664685656668785788674337456733762422665562115243331420 +041224121545426324343433735556775558747778655475548446546444644855836447336533256244246131551211221 +323022135312246564666246753547457576485774746455864785476454854456677544744755446355253333324224223 +422404312454164254356374377556777545446888854765488865674655784555588374336774323453664635521512403 +320111121333525633233467447363474754757666544975878856568786557468785844346456746244362554214155023 +432133454253265442345345367564745678767664779676785676798694645576758675675747735332642463312112442 +303044543315533422426665357566548776856698687968965877966777576476455648334774674336234564143523313 +141124135323365336635663746548446444577695886575586577666799555466665865475376647553423643512423530 +214355155153534342435373445867856445699798866765787679777879657677674465463366466546466355423513541 +003314452422264644754655647484847787556699986866665997688995697585544577454635535652562622625554232 +315232221245242552336775778457657668657989955685775566796966866855746586478664734656234355514532113 +114523555126323526455355657567578457756678568766677866966877997875946568856775756354534423351113425 +323154212432364243635574378486488795588786589898766869768775675985574687587653464466455563533245312 +315513155645632255373634478746559855698786877669779868866968696889595665758655537764544622435452211 +155455415243234246537643657878448578656566766676798978896899986985897445746483446365556345462215431 +132413352225424265436564845767665787788796666978899699878767689797576774668475563457633455426325145 +035342443624642673756568758755467769877698897769966699866679798958679645876645565566733542646215143 +252343432363525635777736884647665956669776899668776967669967686779669885785475437576333252562122345 +411311213323642436666665454786686569677689978787778968768667697778676656447454536774434556532524442 +325115355463345543664455455688586966988886788699779997996789877987877886457686473773546434644314535 +433555536433446454546485748745986879998796687879987888976878898856799789848876646575536265334111424 +545552165343435735755454777565959567986989967798977988887789877895885889675565554633442654643654425 +534223446223323736633585867855878669869696967889999787899679788795669667766454554437732624542231312 +115411526646527737747346785446589788969689987798978778889786868668995757566484657566775233634435121 +344525324534526535464368486565899669977988997898987977887886966767756889676855867574773434232411251 +212512245524437756563668454567599955986988888977789987788876798885976658848846474664543353623513415 +551242242534355353554587765457785895879698687978789997977777789686767995845757837367743655563315111 +333112226262653563744368577646597976867687789887788779798677766986556597758484573466337344546512342 +121453322644444354654584784688689598898878667899999977787999989686675767768757754646344363534211134 +415125366435452537577667458578656866778878878989887897798696876865789875444444476657445326253554534 +531113124455566744773445888477797596776969696979979799976899787979559588468555864477433426232435435 +444525352562435775533756588888599876778978668889988889987788876698578696586586766446442222434453551 +011423454424543744555648557788899588786976898979897878676876899758695857847865556577643446232444355 +113421412445663737435776446764868968996886799867787678867889686575587867867668433433575266324212535 +145313224636652244437535645477787898657898779786667978667976987965688977844457744773662435264235354 +322444552534333347547755588474678658788868996769867787869968657869969757854476677475346522364245435 +155451413634255633367675574887588657599988966986786889869999699857556674786566436355453655255335313 +011115224526426436457765544677789855685775669668769679776898685585875448877747355533463542265253313 +421513353634556643545746565788448798995557797867679997976966568778684755844657453474324363644422132 +424124123234232356335437365774776476777675995766896668885965685798754488687775575546465336614141113 +224525232426666356376347735456687547888958866599959977868595685699855768855537645475325566411521441 +010452514236325625664763535865858674855756888557776597995795768884668555854353653373442452223555110 +233452123533246442646765653487474644476798588579559689875968697974478784843437774765534656111433334 +334334531432222443267675376487857555675967869879855979697965677677654566636735646454225662144133140 +001225254155444434645666766357784466776477977878858787696555844667676744356533335232323623531345103 +302135311134435335527576674573867586767686688596997797787797478864775445673573367224525231252152212 +021404135525242534545665443545765777746456888579777989695865687784648643756566573366254213344555213 +044343323333323665255564365457338554886888546875566766477546647686484333337574565545432645234453401 +231000311153344624642634556547376875677587555667576684856587746845654457543436343466453314145250040 +200012424534143465246433675577347368864864757878448674875474676547545557443443256425556112543112221 +224122332451313652563435455457334565685444887787864765466648855483744576536663554253355253222220142 +043224025444321226454346556743664643465465845468785848846464877773545666355223262524421325243212321 +011040433124534116256654345354363635553646677845786467868647636353444766632635336654314321515320323 +331402111232145443263353466367765354433665344655866647668766566467474454662654334463114315541101210 +141103243533333225463465245644376767537677653735747535776456356376475676223566524434314115221424420 +122341124454254443564665254462753646774546734435734653654337646565366653525255342315353143231112131 +330241244331352334326263342332334543656756577774736743347437637454636626622453322353151335342031410 +101011141113311355121535244662346675667453474664477373444434537764332345353422642151445213331300321 +202434003224355125334313254642523662545676534675755643446547547664446622455236424145114330232141343 +223234300341032154514515266265623564465444376553447554737466375246532435533642331333435534213043030 +311120432040113211154333223444563336266242444543434767633353325334535623424341534254112432413322201 +201001024310404525411124234435523356244264563453345644646332455353525233353423222122553440131133000 +230101031024214425345433251153455563362556546652446245554534555434622455613435314215221041142342212 +002221213412420132124132321151523626344332445632454654365454525366352463343212512523014244333223200 +100132021423121332553234241241144454442525436534326442642454344636254511213144453134023432124110122 +010031101411142421225123351233451143554553325465225435565244533246241145141153143241213213041000302 +023323303001214031042243121311443352365626544526226433435636553353223153445124413242211232310121003 +010332220132301212403032412131445344225445255636665232224563245351225444153421101444022242211023131 +200231322211423420140141514424354541422215543125636226333224413143525251333221024210333121131120023 +110121032233102443112231002123151545531214331415224411123531145123422253222101330122000430133010030 +011001132223211344301013433412413154113522251445542421555254214443451322303310300203231022121333310 +021200232231012000201011020121322235235233535533352543221242332553452143101022000414323230132102112 +002101113203023310140322141401244212541455241424152514451444325212444422133103022314330130021132222 +100002203323321203402423434324400223225443334554221555514312335522000320202144212403130203231300110 \ No newline at end of file diff --git a/2022/8/part1.ts b/2022/8/part1.ts new file mode 100644 index 0000000..5b20364 --- /dev/null +++ b/2022/8/part1.ts @@ -0,0 +1,40 @@ + +const input = Deno.readTextFileSync("./input"); + +const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t))); + +let hiddenCount = 0; +let visibleCount = 0; +let edge = 0; +let interior = 0; + +for(let x = 0; x < lines.length; x++) { + for(let y = 0; y < lines[x].length; y++) { + const num = lines[x][y]; + + // get all numbers in row; + const rowBefore = lines[x].slice(0, y); + const rowAfter = lines[x].slice(y + 1); + const columnBefore = lines.map(t => t[y]).slice(0, x); + const columnAfter = lines.map(t => t[y]).slice(x + 1); + const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0 + + if(isEdge || (rowBefore.every(t => t < num) || rowAfter.every(t => t < num) || columnAfter.every(t => t < num) || columnBefore.every(t => t < num))) { + visibleCount++; + if(isEdge) { + edge++; + } else { + console.log(num, rowBefore, rowAfter, columnBefore, columnAfter); + console.log("visible interior"); + interior++; + } + } else { + console.log(num, rowBefore, rowAfter, columnBefore, columnAfter); + hiddenCount++; + console.log("hidden"); + } + } + console.log("ROW", x); +} + +console.log({ visibleCount, hiddenCount, edge, interior }); \ No newline at end of file diff --git a/2022/8/part2.ts b/2022/8/part2.ts new file mode 100644 index 0000000..165f5e6 --- /dev/null +++ b/2022/8/part2.ts @@ -0,0 +1,43 @@ + +const input = Deno.readTextFileSync("./input"); + +const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t))); + + +let highestCount = 0; + +function countLength(row: number[], num: number) { + let count = 0; + for(let i = 0; i < row.length; i++) { + count++; + if(row[i] >= num) { + break; + } + } + return count; +} + +for(let x = 0; x < lines.length; x++) { + for(let y = 0; y < lines[x].length; y++) { + const num = lines[x][y]; + + // get all numbers in row; + const rowBefore = lines[x].slice(0, y).reverse(); + const rowAfter = lines[x].slice(y + 1); + const columnBefore = lines.map(t => t[y]).slice(0, x).reverse(); + const columnAfter = lines.map(t => t[y]).slice(x + 1); + const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0; + if(isEdge) continue; + const rowBeforeCount = countLength(rowBefore, num); + const rowAfterCount = countLength(rowAfter, num); + const columnBeforeCount = countLength(columnBefore, num); + const columnAfterCount = countLength(columnAfter, num); + const count = rowBeforeCount * rowAfterCount * columnBeforeCount * columnAfterCount; + console.log(`[${x} ${y}]`, num.toString(), count, rowBeforeCount, rowAfterCount, columnBeforeCount, columnAfterCount); + if(count > highestCount) { + highestCount = count; + } + } +} + +console.log(highestCount); \ No newline at end of file diff --git a/2022/8/testinput b/2022/8/testinput new file mode 100644 index 0000000..6557024 --- /dev/null +++ b/2022/8/testinput @@ -0,0 +1,5 @@ +30373 +25512 +65332 +33549 +35390 \ No newline at end of file diff --git a/2022/README.md b/2022/README.md new file mode 100644 index 0000000..29909fd --- /dev/null +++ b/2022/README.md @@ -0,0 +1,7 @@ +# Advent of code + +Santa's reindeer typically eat regular reindeer food, but they need a lot of **magical energy** to deliver presents on Christmas. For that, their favorite snack is a special type of **star** fruit that only grows deep in the jungle. The Elves have brought you on their annual expedition to the grove where the fruit grows. + +To supply enough magical energy, the expedition needs to retrieve a minimum of **fifty stars** by December 25th. Although the Elves assure you that the grove has plenty of fruit, you decide to grab any fruit you see along the way, just in case. + +Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. **Each puzzle grants one star.** Good luck! \ No newline at end of file diff --git a/2023/1/Cargo.lock b/2023/1/Cargo.lock new file mode 100644 index 0000000..3c3af0a --- /dev/null +++ b/2023/1/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "first" +version = "0.1.0" diff --git a/2023/1/Cargo.toml b/2023/1/Cargo.toml new file mode 100644 index 0000000..d68bcf3 --- /dev/null +++ b/2023/1/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "first" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2023/1/README.md b/2023/1/README.md new file mode 100644 index 0000000..31b02db --- /dev/null +++ b/2023/1/README.md @@ -0,0 +1,26 @@ +# Day 1: Trebuchet?! + +Something is wrong with global snow production, and you've been selected to take a look. The Elves have even given you a map; on it, they've used stars to mark the top fifty locations that are likely to be having problems. + +You've been doing this long enough to know that to restore snow operations, you need to check all fifty stars by December 25th. + +Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck! + +You try to ask why they can't just use a weather machine ("not powerful enough") and where they're even sending you ("the sky") and why your map looks mostly blank ("you sure ask a lot of questions") and hang on did you just say the sky ("of course, where do you think snow comes from") when you realize that the Elves are already loading you into a trebuchet ("please hold still, we need to strap you in"). + +As they're making the final adjustments, they discover that their calibration document (your puzzle input) has been amended by a very young Elf who was apparently just excited to show off her art skills. Consequently, the Elves are having trouble reading the values on the document. + +The newly-improved calibration document consists of lines of text; each line originally contained a specific calibration value that the Elves now need to recover. On each line, the calibration value can be found by combining the first digit and the last digit (in that order) to form a single two-digit number. + +For example: + +```txt +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet +``` + +In this example, the calibration values of these four lines are 12, 38, 15, and 77. Adding these together produces 142. + +Consider your entire calibration document. What is the sum of all of the calibration values? diff --git a/2023/1/input1 b/2023/1/input1 new file mode 100644 index 0000000..1ba8437 --- /dev/null +++ b/2023/1/input1 @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet \ No newline at end of file diff --git a/2023/1/input2 b/2023/1/input2 new file mode 100644 index 0000000..91838ce --- /dev/null +++ b/2023/1/input2 @@ -0,0 +1,1000 @@ +9sixsevenz3 +seven1cvdvnhpgthfhfljmnq +6tvxlgrsevenjvbxbfqrsk4seven +9zml +52sevenone +41onevfsgvssxnpsix38four +15ninedzhkpfstrscggbqhktwo +rxbfsvhpnjvsixmxfhhmvdvg26rgrfj43 +gcbq2sghsv4fiveeightrlhchsfs2hsrjknfz +tworgqpdjzrzf7one +fivefive18 +sixfztrcxmbzktwofour3fiveeight +2g4stjrjjmbngvljfvg24 +5jkcdxkltwo71 +vhpttjh2 +3threegmsppjrngfive7 +ktkgsvkthreevone2xxrxzgdqpnone2xnf +llxzczt3seventwotwosix5 +eighteighthvllljmgg82eightseven2 +9hcjzphpktwo76xfpdvnhklzthreejrzkdknhrktwo +fourtwojrvzzctzs5eight2vlm +zoneightthree2hvhfsprqxmlsix7onevn4 +56sixssevenfour5twonine +58fourfour +683 +8fourninenhfpz9eightptsnnb +gddmrzlpn9 +g3qsbqmbhqqp1eightkjggcxpmzgg +6bzjqs7nxpvgtwoseven +271lonepxp2flbmbz +5sgshnrfn9qxt8xsnhtdtx6 +cnhflx4sevensixonethree +595six93 +6eight8jbtmxdqpj96mqkrdxt9tpbpppl +68qvmgth371lqcrglmvqxtwonfk +mbqbhpmhspsbbxgflg98zn +8oneqzvdcrh +kb6 +mhgvpmfgjfourfourtwo4 +81mvcgqxlktbpkkrsgbdgeightbqn65 +hlbhthree1seven9 +vqczmtvqsnd3sh63 +qrzngvmk8 +chpldqtkhqbvdvmnqd5 +6three6two +sevensix4tjvkcfgpone98 +96zgpcq9four +cbvksjgvvklhnksixfive7kmmxg +threeljfr1vzskggfvjsccc +8pfourthreetwosix +l2sbdcvngvmtzrtq +hjdxfj94 +2hbhfbjfteightnr5sixfpfjkn +2sevenjqlpprggjlkddqv9oneightpj +fivebfmkdrrrdkclkscqmtwo6five7 +fourrp8fnbp9d1fl7 +six8pffqfpjl2nine +91sdjlghq5 +fivemrmcnjmfcnck2 +v1 +78htfvqsztlsixeight +5zpjtbgpkvkxbgpsp3cgklflkhdteightwortv +mcxqfgxt49sevenone9 +rt2dsvpf +9dzxmfour76six +tsbmbdrgmzsjeightonezqhqb5qn +seven8zllmz +373onefourthree +1fourfivezthdcxfr +996seven2four +8smnghninezczdlzxxgf +7cbqfzrmhxdmrdr94tz +6vstr65tfivelmhjshhj +248fourlckvrtnzz4sxdqpgkvh +zfivejfgfgdhfrhr6 +one2tworsmtnzfjhvvqjnp +5threefourjsnfzninethreejrknzfn +seven9nine +gthree15fivemzpnqgttcq1 +fivevvvkgtvs3four4 +five121three +7fourn +sixdnineqvfqglmn98516 +ninesixrppx4 +threesevenxbskhlqbone276 +fivesixfour82 +tmdnvgrkjxfour9 +61nine +vtxpkcgb48jzx8rgeight7 +twoonetwo3 +four167bnbdtxq4xvdgckkpb2 +xgbxvx7ninehmvqlldtxls88qhztfldr4 +5qxsfdchthree41 +fournb5gfqzfrlnc5fivethree1 +t6fourh3 +ninefgzksevenseven5sbcpnczgflqptjhk +6three4 +5tnplthreeeightvsk2fivesix9 +three8hcvnmvbhbtwo +6jnfourdbcgzgfzczbc +z53 +fourxzhgjfrrbmkcheightfive7seven8oneightb +2fivehkhnbtm +rptgktsnzvsslcvfsevensixfive72 +95chcvtxv4 +ninenldnphcpn93fivetwo7 +threeeight675vmhvgtxxc2bp +hfdmpv6 +xpffsljjcm27 +8sevensix8 +7hmszcvzpf9eightqqxgjdnhpfour68 +2czrnzdpxsjsdldcxq2vzgfrthsssix +four5bdxdnvtgcbdzzsxjdlbckninetwo5 +35fourfive6 +z5eight3r84hvptgskcclbsgh +2eightljldmconeeightgvhm +4sixsixsixfourthree +tnnthreelfmhone1onepfivevdg +8nine9lmpptxstrrbqbjrjtm4seven +2ltqd9mnrbhcsprz +two5ptcjzbqnk2spvlcxqvglndgvrlm5fiveeight +52sqstnqpdeight55 +2nvskvthreeqhkqvjzqrk1 +gbkqz127four +8zmngr5381rb +klrlqvkhslvbxdtwofour4cmlpbdm6 +eightninenjnmc8zrnrltgfmfour +38sv7 +eightvtkkmhhninebmgdvconenine7sixjkdzxcr +h14bdgvknbnjq4fv +74svtwo +7three5sixone4 +zseightwo6five +shkznseven5ninefivefour8 +mcmztmrgctqszzpqs8tworfvkseven +onejjmdfour15nine4 +7bxqxxxvlthree4tb9five +twoqzpx6hj +68hbdjdd45two +68 +4hxlfbgvtdmbhnpfzxpnltfivemtmczjcbffour4 +fourseven4hfffmtqoneglgnnsrqsmbnxr +dhbbmcxtv7five9ffjjcmshv31seven +foursbgvhgbggnine6three4zznzcvmxxqktpdhff +681cvdh +3ninefivefive +jg4dnnxzdtwoqdbvfsix +g4dbeight6rkc +236bjcppxmlnine +5crthreefive8 +6twoknqfbmeight5c +64eightrkvvtjtsonefour9eightwoqxq +sm7sixfivexbrkvhtl9 +threeninetwotwo1one +tjjeightwoj3gsdmdseventwo1 +63sevenk4blssxzkcq29ztjlnx +ckpleightxgngnhkj2threem +8knckxzrfbbpxldzninennnmkxkzzstsflv9two +rmldrlcvccgdbvdnxvqr3ninefznpqrrtd1cfpjrvjzs +5twojdflbxnlslnsjtklqkrbklvkthreejgxkfzeight +sevenxfpzvss6 +one61 +2seven7eight +fivefive5fourtwo9vjmxmtpv +4pxfour +twofive1eight9ldjbfbzhhffdb +onefive7four93pjchnkrzvz +4194hgfslhdczj1ztjtnccpjseven8 +sixtkjmtcthreezjfcgbdhvqlmbpzmc7 +nineeightvnd55sftvbf4sevenrkgbjskxbj +kqoneighttpqcnsphsfour7eight9sixthree +5foursvfsztnfivekkkftdfbptmrgcone +sevensix8one5zjlfcrqzvp +1hmvpbhzcbgbgvdkblnhgklltxx +55xszsjgbd2fk +hdrhmddj6ninebcfhbd +f91six +3tltgktntqpkeighthbqhlxcqnffgbfvxrkmr2 +3jthree +2eightplclghthree +771 +5gccqqmzmx81twob +6pgnqbsqglk44mvslnxghckcbtffxvkq2 +twooneone5 +twohbxsxj2six826hlkdjnnz +17tbdmntksvn89fivethreeseven +sixplznhmbgzmlh3six1 +h2kvpbnkcxrssevenfive +jhpmnksix7fgnbhgv8fztxfrpfvmnrvhzr +vskpbnine3vjqdlmv9 +vmg86ht36sbnzphxfive +klqxeightnine6 +4nfninelzshl26 +zqsb243hfdtvgx +two9tzcrmrsix81xsgvldl +ggqeightwo5bdpqtjkgzdclxsqptwo1eight1 +pvfzftdxqzfourmmbzlbzcfsevenfivesix5 +fivelt5fivegshvshpvkpqlddmfj6 +cjpzgsvgsz7kzcpr1sixfour +8two4onesevenseven7v +ztwonefouronezdvggfive8eightzflpvlnxfspgrtwo +one7tphmqvfltwo +49seven2three +9rntqtxseveneightgflqzkrxhglrnvrvz1 +four6nine7 +5nine3 +4ddpkhft12hrhjvbtdxthree1tpknk +7k +fmlrpkxqktzdldrs84onefptgdjspldljvnine8 +oneseven4nineqbqlbxf2kqnpr +ffivetwo97mp +47h92ffcd6 +two7tcjvxdvctfivepcqxjnzfourfcndmdmnjseven +cjdjxmnmpqr6cqvcscdpg +onefour95 +seven9onenine +trpvv6six64kfmxqrdvbsevenhqzk9 +tsgpcfxsgsgmhd7rvfz +66788 +five26b +chcbxone1 +6mrlfkqjssdxbtzkshvc8hjltjjxthkl +four5sdsevenvztqmzkm21threenine +snxrlctcztlbntnxkpmbs2 +652nnhvz6vcgx +2zrxljdgsnnfour5fourp4 +85lzkjln55239 +51fourrnbkb4 +xbvsjmgsjdvhjpxdjhl1 +6sevencfhtbm4svgpzeight8three4 +827cclvxpdgqlhrjvrgxbxthree +8pgqr +three2ninesjztqjdhdv +538one59one +6lcmxone4ninehzzb13 +phckzkgtxdcnine8onefour744 +five61 +skbknb9qknrlszdt +fivenine6jnxfsseven7 +lfj2onethree4198 +bb9 +kfljcb5zssbrlzml +twohmspvflmxnine2eight8 +4onegfnxxqpqnfour7 +qvg7seven4 +85bheightghccknine1three +fivedpthreeseven1fiveseven2 +6nine3gzlbtvtvlnine6eightmdn +seven3seven58gzmdjmchdrzxgkgbbfrf4 +2lxbnnsixgdcv6hrqjnfhdmz +8threefiveflbfmthreegtvckvpxkd856 +jbnkkbvfivexqzm238zxvztfl +68kglf7 +9fivetzjsixkvfrngxbfbbjpd69 +ninejgz82fivenltntmfs6xpxc +fourlseight3qrrrrddzlone +seventwoqfkj2qxzddcgtb348 +xgjddt5 +q8bfhspkgmsevenninevdqmlzxznhmdlg +qc2sqqlkfrkj652xpgzjskr3four +two3tpl1cvmldrrghr +qhoneoneseven9zfivevrkkjhtdf +ddjczzpcvkksjzdcmxkhmbds2 +qnvgskzdb3nine77sdvfhfqsnv2kjffgsvz +six8three3vbpnkb +rgjmvgtgfour36qqbqznkjv78cbpdqb +fournshtzbqfourthreefive8hsbpflngrvzdhone +toneightone9four +fourkkxtzpfivetwovnvxmtkeight4t9 +tbxlvkc5vgcmdckzv +7threethree +9ntqnzpldshfqlc2six +8zs7five +3threethreentqthree +jmxjl4four5 +jnmrhzpdvbvvg9qcxjjmv2msrszndl +onezjrkeight4two2seven +32jlkhszgnkklbrsgpplphh +1gsdqlbgt5eight1 +219 +93gcgx2twothree9xggt +5fivenine1fiveplgmlffsvzbtqpb +qv7lthszlgxeightnine +7sevenmhmkcrkkq +mxmmgqp4rptkbhfourvjh +3mrmhgjmdv6pvfkbmconelmlckqkxjfiveznxg +7one1kbjnmtpskgsix99 +bsvjlfgrcvvhmnfjzktdeight9914 +csfrjtwofivebcrcmggfpfsevenlmhncfb1two +3five1vphfournine1kvfvzrtm +nineeight3vxrdvttwo +snncrseventwo5sevencjgl +ngmgxnlsjjhvqpcxjshninesix63 +4threeone2twotzsseven4prqdrnjln +fivegfmn391 +three5xflqlnrjgfpzt5 +28two +six729twoeight7 +eight11 +sevenseven1fqcsevenonekrgxmone +8rvlj62 +one3ninethree +89s6two2twofive +pnhhshxqb312 +vlnj5eight9 +5seven5eights3eight1 +6kqvkbjrfveighttwo6 +5twofour +ztnkthreefive1fivetwovqjpx3three +qs2 +2vft3 +zjr1zjpxndcsc +76threesix +1four88n7 +9mrrkjzlxdc +1ll89 +fgvcseven81 +4789vtvtcseven +2lcfbmqcqt +5sixonefive +cdoneight1onetwo96lpllgksff4hrzjkxng +gntghdtwo1 +eightninefpdttgflvr2 +8zcnfm4krxhfive67seven6 +2hxpgvxgsmc +trlvltteighteightrzkxntpdtpl24 +hkttzcmnck7s1seven +sevensnmhgdxpbksngnflnthreemlqgdvphzk5tvmzjvdzbcseven +eightpsbcshqcbppkgfxcnrgtwoeightfour6four +53xktsrztnxninehpjjjktqnsixfivefive7 +sevenonebkdseven1seven +11sixzdqbbppninehhkpxdbmlv2chddf +3one3fivesevenlljjmxvzbcnqtszvzspsevenb +1txlrnsb1vq28kpvv +1two855 +2lxzhcjl1qfslvldkpdcxf +9seven3fcqtzfive +eight4phtznrb69xqbmxmdvxnsstnine +eightfive2sixnhxcffkq95 +five28cppfive1two6 +p8 +kn8 +6hvzkkr4nine2seventwo4 +39134 +dztwone3kqlbbbknfive +xvvdhddonekcgqqqzgxhlg2seven +237rhppmlcmhsevenvnjxhzfnzbzrsdl +1kgq1qsphhpcdeightjnfsdggnlnckgfbj2 +bnvpzxtnt16two +mkhvcrfqdtwo3qfmhs +1hkjncflcz5four7bbgpgcmnv94seven +7seventmmhfgngfxt4 +98238 +3zmnhxqjqhjtptwoqtptmxfdp3seven +bkqxlrtf4 +onefive8tvb6fiveone6 +1four3seventhree5mvsbsdjz +jtjsjflv5gxvhdgvrbgbdcjjtchkvmf +sixthreefcrbqzqs7psczkdc +dc572twonejgl +2xkrpz9dfslbjvmbdkgsixhkgcvdgktq +five114 +8two85 +9fbh79mqbfsxcnn1two6 +6one9fivetwo +gsjljnkhhvqlmmvcthreemfcbnjsbkvzzsnkb7 +nine49twojdqjsfbzsixrhbjhn4 +3threesix1 +52six1twoseven +eight9dbb6hhjnt +gsnqmninefivefbqcrlneight1 +jxczccqqpxbcq8 +1ckvkgqtvqrpvdrfivejjhhfkxvvhfm +sixdxgvgglfh4qzczn8jpgqmgbzkmcdjfnhmh9 +eight7nine9 +tzqv6fivefourhfz +sixnine2vkmdnkgtgnbbkcxvvsc2bf22 +78two41 +srpeightwovrhmbnkpnsix1 +fourninemfcvlstbmflzqf9lgvlvrlff2srxpzvrp2 +kcgtwone9eight +7three1onesix1m3 +rgk2fiveeightthreegckdbd9dml +sevencx9onenineeight6 +9ninetwocb4thttbkqj +five26vrc2krtfivejpgdmtjg +2ninethree7cnxbkpvthreefiveqclhc +98seven28 +onetwosevensix9three8 +sevensix2 +ninesixlrdgpbrzs7onedrtlqpfour1 +pmvxzronexxxvbdrjr7 +15eight +crksmfive64 +onetwo6fivemqkddjfxndjfpzmeight5xzk +gq3ninetwo9 +8mgkvbpmbzpd7 +xfbvzlbpvb79 +kkbrvppqcg5 +94dkngltfzs98 +rchmjsrh7onejcknbl +9threesixxrbzjt +3963seven48sixeight +98992 +7zqd +sevenseven814htznfour1 +ninefivedfrtwoone5 +qzgrrng8six +3742zsgbqgfvzlgsgfmxql86eight +seven7zdfrhonemfhcfmclxj25three +8pnhpnsqxh +62seven +eightpfgmmdg945ksctbstnh6cdxvgqbl +932zsnvmcone1ktfqfmbnsfive +dglzhqjthreemzpm78 +one7sk13ghnmvsrprg +jdvzccvczspscxj5rzzdqdd44txvprhqx +sevengmtcflgvpzonecvmbtgknine7kngpspbg +xmqk6jmhmdtvh2kbchmsgpjrv2four +tntsjnine3jksrrvone +xfzgbzfive3ninekmnjrlqkzq96foursix +3xbcth723 +zbvtsrxh94s +threesix8mjchcpvmdgfive17xb +8eightnbbzhfhf4fiveeightmnzqldztsnfour +tkglxsb6one62rhzggrtgqxqnvjzfmb +gtj2onempqp34qfjnlxtztvjvsv +2eightzxdgc3 +32dgskjkh2 +sevendnvrcm5166 +5knxkkjh5 +fssjcvvckqjrcghcmlrkcvxl22 +2jbhdlfjtbfivetkjbjmtrgxrdmxsix +fivedm8pzjfngzfsk35 +two31ldnvx +5mfive9ggkq +vqdhfsfkrpp44trqpnkqsdxvvdxc +lkdqckshmn1rgrvtjqj +ttwoneqzmsxzskbbnkfh8onespphhmsix31 +jknbnfvbf1snjscz5 +sevenvjn9 +ninetjzhbdjsffthreecfctlsfrz2 +6ninedqmxfqxssbhrrffpdhjvhqtkxfour9 +6tlrxcvhtllkrhjxqt3two3 +eighteightfive79 +5sixfive7bjlkninefour +xrgrxsvm5bhcmzggbkrljnssxgpgdlv2four8 +1mxlnrtsjgdlcsncktrsfour +8xtkgjjbtjfnc62vsshkjp +91twoninetwo +ninefour5nbnnzhtfiveggrjf7zqzblbml +sixfour42rtbvlpcnv4 +oneczchdtwoglj9279 +jfvv5rdkpzldsxh +ninexghzhdqk67 +gnllbntksevenseven7sixeightvgnfd +qzqjxcqrs8fivesevenrnvnq9nqnchpjpmfkgtjqcsvtv +6sixsixspzppcstlhqlssvt +4hhfndc17rjrrzvbjj +xm6sevenseven2fivendnn +threesixd6nrxmxgcbjfrtlmpkjnoneshmrn +ncnpmsixfour4two +pqvz9fourkkmfvzbjqbfour +szspfourhsqkfkfcndcnineone5khdb +six29sixlkfbphnrzcjl +cdtwonenine73 +mtlqpjcqcseven29 +8onekdvdmjbmbjtdngxhjjchdv7bvsbjqszlhvht +fivevqnjsvnhvnine1kxcsjmzx +6six32twonine +nnsix5fcsrdvoneightcn +11rzzpnrtnsevenmvnhgrsgngthree +3fourjfonefoursevenbbfour +fiveclfour7seventwoeight +4zvzlfive7hkzhbqrleight8 +4eightthreemthreeq +66nine +dlnm59eight +fourthreexvgpp7 +85sixfnrjqvmzmtbpxttrn +one2seven +63fourztwofdssrbjbcvhltg7 +fdstgbg1qdznxnvftfvfnr6djj +5dcmbkrlvsrfvbdfqfour +xp6fourrcfxdnktdctwofour +9three4threeone6 +8pjzglttwofive9 +2gsix9sixthree +ptwofive3t +4hqkqzjkqddnnhxkrfnhgbkthreethree2 +threedthcktqkcthree22 +2gdlntwoseven527tzxbzkdjbv +6hbxrgxzcnlbnz6 +ds7mvjbvfkn +sixrpd7eightfour6 +qfoursspgghsflcrvqeight6 +94hxsj5 +bhhhnfnnkninexnjtjxrphrkc9mdmjp +pbttrcplcsrldftsgk4991threepcbhxxfrgjddpz +6four1fgjmjcnj3nbxxnnxhjhv +6onefourshbzqgxjnhpmz +9onedvscbrdj5 +jgjrpgcjztvkqseven8sznzl16dzrhmhnq7 +ctlbzmcctmkzpqtsdztbmllqnoneoneonenine28 +znkkbdsix23msxkcs +seventwo365one2nlmlbgh1 +mtzthdjtonezfsixms5mxjpftkd +onenine8ksxnslf16njqldnnkjx +pzjl78nztcgnj211zxnmhxzrjjh +twozkf3fiveshpt +seventwo387bnfsix +2xvvtzthreexjfxxg4seven +8vgjxlvjc4twoglhmpgtsbfonethreeqbpcfbmz +mhlgjlbm68rmeightnineone +threezhldnzscqfour9seventfkj +cnprmbrprlhmonesixlksvgzseventhreehdzh2 +smp215344two +5nineonefive8sevenzvlfrprdq +rvf583 +four8nine4crzpff +rhnsqgnncnjzhpx297qmj18 +oneqlx716452 +mg3zptnqbm +4ssgqpsevenznzlnnsbjpxkfvlkrjckxrhqsevenzrgjlkcffb +six9fourshjkhspkcffiveeightqqkvktvjsmmnfrthree +sixdljbtwoninetwo6ninesevenn +kcjqfvldclrmsd52qn +352one +7nine7 +9fourjcveighth +5twoz73 +bbsvvbjc1one5gtts3nine +four2six +7nine5 +nxjfthslhc2sspz +69onethreefour8nq4eightwoqh +8mfpmmthree6eightbksq7 +98bzjlfjm +six541threepklngxmfthreevvkdgxpfour +seventhree4ninesix +7ninejkcxsixsixlvffhbkjkfive2rdnd +9flxnpfddx68mfgnkkdqlonenblbszdvvbfour +threemfk22vf +threeninemh6 +88six +4eightrtthree +4rkjjgppc2lkvnhbnhffnrvqsj8 +65gdpxxz +5fourfour6 +six9m9eightfour +21szgzbcg +krzfvtsgp3 +six2threethreebskteight4twoeight +58bjrnzbqg +8eight4four3 +four6qcrnthree2 +j8nine7gqlvtqxlzdtcbonetwo +sixvlthree55seven37 +48sevengfgzczbg82 +eightsix2qsqfgmsrscfive +zpbxnxbnmjthreebmksffpkd7seight8nine +vfvhcvnsevenkbnhxxhhc3csk79 +147threesixtwo +hldlvjninehnqxd7fiveeight7sixkkbmjxnjf +six3gjbkbpgzdszl3f +donethree3seven7xvfgnthree +3lgpzhzmfftwoeightjhlngfn6five57 +5fnfl6vkncfsrrrsmxsl +7ss +five6gsncdxsixnhphl85 +3rklhfbkhfour884 +xsjseven7 +58mxlmsevennine7cssix +1jnbbfourv +r21kstwo +zrqlghpcsixeightseventlnpnxpzv3 +887 +zeightwo3xzjvmqxpjtbvj +1brtqrcvbrrqsqbpsl1sevenseven22 +4qcddseven +mg3xxlgdkblgg1htdjtfthpv +9eightwoslp +ggqvtwonsfsevenfour73ccmzkz1 +7rfjfqh9nine +gnpnrzzkdtfcseven45hvv +34one1 +xzkfl9fivebxhcxrmfzszonekgzcvk1six +8pzscngsixsrtjqqlk25ldczspzfdxrzhh +zktjxcb72twosix +9mvtk5jqhtwo +two82klbfdf +xstrdlsmx2onesevenrmgpjlrtfsfourfive4 +four1djgssbq8sixfive +j1jkgzrjmnfxonejsvgzznsevenprbqbjn +two65ffglkhgqb8xdxmldhtllj3 +lqqqsrjf27four9dgpjcgz +fptvlnfzpfm99eight8five5xtgqt +sgrdlpplhb2six6 +one4811eightrvkbchcngmone +bcsv46dgxglfxsrn9two +spshpxtwo6c +1sevenrtbxc23 +sxppftvvfx4qvhbrrpcgfb +rmcvzcl8dj4ninenpgjhlblbeight +threeseven7lljggng5two9 +four47bnnine2chscshsrone +kxtknjfourjr1pxxkqlxjsix9 +sixtwoseveneight8sixthree +8djjznt4 +pj48hjlqfour7 +onedvpqsevensncd5fivenhftwo +twonls1fivednlbmttzszjczdjfqcspxpt5 +11hbdpbbrjddrmlghs +7seventhreeonemsszrjxd +4smtgkzzrxlcslkhlnrft14fbtznvq5six +rdv9four39 +four8fourvthreebrnmqmhb +msgrzsdxfxfivecpjqxtphffm3zvgqxkrtwo +1sevenseven3vlcmzlgseight3 +three1bkmpjqxsjmjsmlvhfrnine +213sevenfkslf4ldg +fivegflgdlqrfkmh81 +jrkqklq5sevensevenddlzbljvf +5zjxsxqpthreeone +fvh6 +154xqxjfvt +32fnpjclfgjplmkf83 +6nine785six +5one9fiventcxnine37 +24seveneightrp +hbd6two1knqnfgcftq839six +6eightzzqghd +fiveptonesixnkslhvpkpsbfltfqnnqjfqjlhthree1 +ztdjmvrspdtbqsffive8onetwoblslmlxssjks +876fivenhzmftccrcgvqnssixthreejhg +jpvxbhbrv55ninefive1three +ndpdvz2sevenn +dkzpptsmbfhnnrqqtwodllstjtd87 +eight1fivejftckmgxmzbsq416one +2q16ninesevenfour +thdst7fourfivetwosixgfjsnvftone +ztwone8tjlsrsqpnqsxfll9five39eight +threefive757nzddvxh6three +71two +nbgsnbdvqkqr6nvsqhr +four487eight +mgqtnlqxpvbjrgqffourzbtvcxj4xht3twoone +fourninefivefive97hzfxr +4dhrgdrsr4onejzgs5x1 +cvnmzrdmtwotlvk4five +7sixzghv5rxlbslsninefrsxht +6lcmjnckbjrtwosevenvmtxcnfvkfqvgzp7 +dvndcdmtfxbtznqjrprksseven6twosevennine3 +threethreeone11ninesixeightone +dvvcbsix96cxhgjpmqdsixone +five4sevenmnzgktwo +9rlsseventhree6xhtbxdnn +bxlbjtmone15jsixeighteight +1fivejlsevenmbbfksks +eightsix35fourgcptzrfjhkrnfbbznine +seven8sixfive72eightqjmcfjx +seven8616xszttt3seven +53twoone22 +onefour9ninetsrvczrnbsbrfstwogkkzs +zpsplntwoeighttwo49three +twoeightseventhree4 +eight5twofourgpnlsmppt1 +fourccknqs7dndlqhbsdhfmqgr1lvnpmxjtnkshgm +five9ptrnrfdfgdkgxzlr6three +pjxgrrgmfk57hdgclbftr +gdcxzqldf3z2prsmfivenlklnrtbhfst +999 +85lctfptljktwobtfnfrttlxrvlfvdnbsm +172 +tmrcrhkvnfsixkvzhjxmngcrfmkfpzqcfivermnkxlfive7vtvvmmnfsz +sixseven6two8kfrpjksixeight +75pzmmlvsjn9987dftrvbf +4z1fivethreefive +foureightrdnnpxlnn32knstrmxg71 +svzljxbj113zpnpshmnf +hj2hmvp3eight38gxngvkdmnzzzcxjkl +gnrhzjzvrzsix33vqnnrmgtdvvkbsmglckd8 +onelgjfczsevenninehkhkxcskvcvnncbpj5 +onesevenninethree1 +dqqnkzfv9bnine +8sevensjtppblkhh4seven +ninekggzmfsfpbfnvtv3sevenczrhzztlsfour +eight59hkthhk +blskkshczzone7 +6one4pffxsgmc +4lrbncnn8 +314ninefivesevennine6seven +threeone3ccrfthz2seventwoctg3 +bfxknbtwortcfgnrcqsvqfcrxzmlmk83krb5 +fiveone8 +nine6661 +eight8884zbdzcsseventwonexgg +16ninetnzftqzlpvgd2 +jxfccks1 +sixtfvgpjrvpr6pmsseveneightvbrxnq +6eight5 +tdbs3cbfhglpfdnxlt +nbcgkzchlj6pbcx4 +661 +jcjggnnn1 +eightdbtfgpfivecnlmnkrpgf1nine +33bngjpkhgfqp4tl97one +6rkmbdjztnfninecdlhnbnf6ninekmvxrqzbl +465 +nfklpzppbq65threeeightsix9 +2gddbjlcdkx +kclqnmpsixsix4fivepb +stvlnrfdgcslqmveightbmbgmnzlrq8gfjndq6rsv +sjzcfxn7hs +oneeight32nine2ghx2nine +2lhx9 +6eightseven9 +three9nineone7five +1nrmk +dccbdjqhvfoneeighthjsmfp89hheight9 +sixrfjshf9nhzngkgeight +zsixone5fiveeightsix7 +vkthreesevenq42982 +2h +8five9jkvqtwo9 +lkxvfm7qdhvnkt +8jtttvnmxt +1nine91sixsixfour +8threenmffourone +two2zjj39seventhree +c4eighteight7hssvhvlm2six +9eightfivezmnknpl5eight8seven7 +threenine4eight14vzmmhczfhxppqs +seven22fivehgtttqthreeseven +5nineeightthree +hfffcgvnkrp5threevccpjmnfn3 +19seventwonelj +4nine8 +2sixfggckcdt91three6 +9fpztvd +pbm384 +rqxzzqtlsx8one91tjmqtcmkxhplcmns5three +four13sixgreight64 +seven22four +2six946 +nine1767three +mdpvkhvbqstqpskhdxgbzt2zsdvsclhlzbcskckz +1775 +pgdbfmvffninezhthree6qlrdkbvqthree +29fourtwo +fiveone14bsnrd +loneight1fourpvcgxjsscssftbfxtkq +fhtwobfnmvjxqzbzctxseven8lhxv +ninefive67rqvgnbt +2fivesevenfive4rhpvklfjz9ninezszc +616vvbxfjplsppgpx +rttqfddgone3rcvdljn88jqrlbdmxgv4 +8282eightseven +mkhxlkksgsjrczffqmzzsevenv7seven6zv +5hvkqdnpgtzfjbqrtzx5tncqbmxjpqmmzcf9 +llpkjvonesixlnf7one8oneseven +five65qzjtwo +xhcjxj1jghxktnmbxml5bbpklmdcthreedzt +h3sevenonevdnjp5zpzfmch +seveneight1mrrkcpbqd +8one5rn +qbffrljhl48qtg1jhngrrbsdhxl6 +ndc5sixcxlcgxpbstwoqfffive5 +fpfsqrzfjthreehzbcmhss4fivegbtwo8 +nine2two +mddbqdmtcjrkqhv2dxfvdg8eight +jbrkj2llgmg36twocvhmxnb +mhdbsnine1 +four1mcvjdkmthmhcsz4 +59fbsnx7qrtclvrkfoursdpmhdz +6d6four27zeight +1sevenvjbqrd +9fourlmjqn9rd +gfxsrconexrgdzrhzcsh4six +4one5jhsztrspthree +four5eight2 +onebtwo4eightfourhkrsgeight +51kjcqqxrjcnnine5 +kprdj25twotwovsdhzgmc +htwone4344five1 +dvmkvcfcpsqrh1 +9twogzkc572sixhktmslseven +fivefive7qnll7seven +svbpx64n31onevzjhhhl +8fbjkdcttwofourtwokj +6twotwo5zkcnxczszfive32 +mbfcmsjmg9hmqngl +ninesixsgnfzsmbgrlxbxjstkmmfxc5 +two8fourthree9sdxzvpgseventwonez +td3two +onespktrhrktzrcvdgqvdxgbgctdhjmm7shqcbzvfxhzlt +5zfpfksszthtzxznxgkrpc +8xvmsseven592ssmzjdmz +64fkcmhmqdxnseven +vdhkbktf1seven5 +tzfvfour3three +fourl7four +dkbbtpd5qbqgb +qzdlttqfhn8chxxbnplt4 +qmd78hqdqxtx2rrdvkvvfourtwo +91mmlbnbs5peightmznzhskfjv +2rftqscv +4oneonenineddktjvjlhone +ninetwo5four +1f36xndmtmmbpx1qzqmdkpbp3 +hxsevenjg6fiveeightwodps +4mrndsix18 +r6klzqlz +ndbrrsvp9 +sixsnkh1gvcnine5 +bsstxkninethree5ktwo7five +fiveeight9five7 +3nine5sixkqlfrpdpcfive3 +lrrqkznlrcmbvdr6 +8xklphsevenonetworjgpjlrllgqcrxhlskfhpq +fourmsthcgcxjsixcvnvninebdhttzm85 +8gnqnhptgkfivesix +8onenine +fivesixone3kpzvnbrjf +9four54 +6twothreefthreefivetx +4nxqzkkbgvthree7qxdhtpjv +six5three2ninesevenfive +3cqkmxnbkkh6tnszgzxqk +82tzncrpvjts7 +39one5fivenine +51jrdstpqnjdfbbtjz9three6 +nqrmg8 +7threesix +one6fsxsflbnfivesixthree5 +bxbonethree55one +7onextpttrflql6snmbdtbnvvfive +threeklkjkvqzone2vhzsqdg +eight231eightsix5 +cflpngxndfivefiveeight4rjrsfrmmtwonen +three8sdone +nine4nine +two2dxzjxkbb2knvg +bplttc53 +69hqtkfivesixtwopffgltlsj1rhhslz +6fbg1scccrkjjsnnhpqmphksevendt5pcdl +9onesixsevenfmmxtkdzone +1onetwocrhcqhrxt7sevenr +sixeightxjjqndfqtwo35 +9cqvtmfsqrfqhhbkjgbdk +foursixfrtkpcbxgxx5one +429three +84mxhzmbdk8 +nine79 +xgntrzninemhxtqnine4ltvx +four3seven6qhrzznzctwofour +5h +16eightninejmddlknrxfone +3gjpbjdone +654twocbczrzjnhkgdpqdd +2xkptbxsixnprkhfslj +19mlqcgbfpdonegdvzghjjb +dnslxvmdlpmlsggq1one18 +lbxnz487vjlhhsxvcl +sevengvgkk8mfbplfshlhqnrvbtwofour +djfptvqgmkqgnzdvstwomzpcxfthvzpfsglc7 +1nlsztzzcbmqseven4fourdqq2 +cqcvkcthreeflhbcsbddg8 +sevensvtbtdkfkxzbfqznlh1 +sevenksn54 +4dzv6 +lsixninesevenrxn2seven2 +bsix2hqsvvvxvkpbg +hplfzmghmbddz2htfkcfblqcdzfrvqpssbxdone +19sqgxkn8four +64ksmvcseven1748 +oneoneonedlmsdc1mjn +7218 +3xdskntkmlcldqjgxbgx38rkbddntz13 +tnqnvshmhrkxbjvxcvdhmx1 +twocrzgfourbvtkcthdkrqpbsevenkfv8zczzszpf +fdkdqfgbgnttlpnjrvnine6dvpdhtchfourbv +qqrznptxjseven9twofourtwo +hpdrqkonetvgfour5onepdk +6eightsixninetclcsllxknspxfgxmlxqddvone +twosixmcbbjthreekclp3 +kklgzxnk2eight +zgmnine8oneseven +gmcgzggsixvjzzgrs3gbzmxninezrlcfsphzhseven +7sevensix5fivefourh +rh1qzxvcmqjmtspknine +12threecjltwozchdsfnkmchhgv +vktfhngfb391ghtnrqfourfiveone +9eight46xdxkqtkflqdv59four +839sonesix2btrctxfm +hzpjkvqdfg6three2twocsq8tskmdnvdl +5f +dgmvxqbpbjpbronefivehlf8ls9four +sixm7m8three +vgppvrgdlb26623csvkhsd1 +2hjfccgbjnhl8176xkpftwo +seven12vgdnrvmmp1 +oneoneone7eighttworvpvsjzl +738one99six +sixrjm3 +15six44qndpslhnine8twonehkb +912 +3blcn +eight81fivexsbkzcthree +kdqlzbnbnkh2mrpz82six3six +sckfhxxjxfivejgtlmdhc3threeoneightrc +znjgdjd8six6onesevenfour4qpnmvtdnnf +7gnbonesixninehreightlmjone +six3fhhlfgmdlgvhvqctcrxxh +982vbjgptnc +sgfnlppbvfzrmntwo9ggqzsixsixxgqvjvffour +ninenine8 +kzfmgls5seveneight2 +8ninefourzrgjgrqkxrmjlzqb5 +eight7five +fbjt4eight7rnhvfkl5knpvjhqdhvmvczxbvrx +35five +7gzjqslr13qsqxltsninetwoxmhgzhl +threefour2three +onethree45 +zvt8nvxctwo6 +sevenkfournine1drrmrmljsclgbgsd +jfcnrxjjnbsrlblzpvxc84seven3six +sevenonemt7eightseven6 +sevenrddndpj85fzzn4zhvthzp +78zfdbmrfgeightgjtqnx +ninerdqndgffive2dlsblldpfthree9 +lvzlfqzsixeightkqbnlv5njjsc4plh +jsqhmbt1xvmkgfbghzdplkxdmgvcrkbngrjlpfj +lfnvhdxcx7twoq +five85 +1two3two22bdpbskrlph +ninefc31fnhsnhf5 +2cxnrgtlvfvmvvmnfjllshmdvvfc48sevennjfk +xbglffkvrzsmz1 +czlrrchbkhmz5qkdbtcjlffd5 +eight65sn4 +7seven2four99mlpskrgoneighthm +9kfpfgzdjdgxjkltdkbkeightmxteightthree +9bdsbeightjvkrmhdkghfive73four3 +xeightwoninehcrsdbnvtwovtbkhtxktjslsix3 +15fourlgrsk +5xjqd9 +four8ttpzxpnrqnkz1 +fourvbfhg1rbrngbgfj6nineldqfxvrx +sdpnkkfive9twodz23 +sixone4twoktcx +8rjgbnxsixfivebsnthree2fivenmjxx +fourddtxngtd4jvlttthhmz +2nine95four1six9nine +2gmxtrrkftjfnknknineqjqnscctfourzrqdrgs +flghzhfgmn9tckbpmkgsix9 +jg9svtdrmlzm31rsrqvc4mggcj +eightdpvfplptwofdgrkstvh8qseven87 +eightfour2fourvzksqhxmlkpkfktmdzpmthreetwonehv +nine86kzqvkjqtjfourmpcggd8 +8nstjmtmstcnffnksqh +bvgcmbcrgqfourpvs5xs +8three12 +5398db9sixvnvcrztrqz +7one62fourlndnshczz522 +qxrhp5eight183tfour +fhpzgkt81two57 +ktlfdnbone6 +stsninecqxpfmdhk41vlpq +eighttqcc5fqnfour84 +25gmh12threeltfnfdrxhh5 +57four +mqgdhfour67 +37ninetxkddhfive +rzrsskzrlzjbcgthreeghbqhdpxfvgjfqclcf4 +fourvone2vbpltlrj +xz5four3nineseven +1szrhcmzkftwo9eight2ltjmgjzcblzone +zlnkddtgsb1sixsxvjxgxp2 +26sixpzpsixtwozqff +seven99fzqxfmttfgxm +9twonineonefourpttbgkxt8two +fv9 +5qcmjsfk6zxjld1 +fkjstnvmchsr9q699 +nine78three +4rcs6bhbbgzhsstwomnineksbxfzj8 +4fmblhqninefive6qbkm +zsgjbfrjfour1sp3 +zbfeightfive1oneonernfd +5bxtfvzczbhtzfourqglqdxsc +f9five7five8ddvseven +23bszpdxfjmzg +fivegctmd3vlcgfgnine +63hbdkxljlq +64eight6eight6gxdpmtnbfone +28xcbtt1 +1six5 +four289 \ No newline at end of file diff --git a/2023/1/input3 b/2023/1/input3 new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/2023/1/input3 @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/2023/1/part1.py b/2023/1/part1.py new file mode 100644 index 0000000..e421ade --- /dev/null +++ b/2023/1/part1.py @@ -0,0 +1,4 @@ +import re +numbers = [(int(re.match(r".*?(\d)", x)[1]) * 10 + int(re.match(r"(?:.*)(\d)", x)[1])) for x in open("input3", "r") if re.match(r".*?\d+", x) is not None] +print(sum(numbers)) +print(numbers) \ No newline at end of file diff --git a/2023/1/part2.py b/2023/1/part2.py new file mode 100644 index 0000000..4576eaf --- /dev/null +++ b/2023/1/part2.py @@ -0,0 +1,6 @@ +import re +wordNumbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] +parse = lambda x: int(x) if x.isdigit() else wordNumbers.index(x) +numbers = [(parse(re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1]) * 10 + parse(re.match(r"(?:.*)(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1])) for x in open("input2", "r") if re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x) is not None] +print(numbers) +print(sum(numbers)) \ No newline at end of file diff --git a/2023/1/src/main.rs b/2023/1/src/main.rs new file mode 100644 index 0000000..7ef9478 --- /dev/null +++ b/2023/1/src/main.rs @@ -0,0 +1,73 @@ +use std::{io::{BufReader, BufRead}, fs::File, ops::Index}; + +fn part1(file: &str) -> i32 { + let file = BufReader::new(File::open(file).unwrap()); + let solution = file.lines() + .map(|l| l.unwrap()) + .map(|l| (l.match_indices(char::is_numeric).next().unwrap().0, l.match_indices(char::is_numeric).last().unwrap().0, l)) + .map(|(start,end,l)| (l[start..start+1].to_string() + &l[end..end+1])) + .map(|l| l.parse::().unwrap()) + .fold(0, |acc, x| acc + x); + solution +} + +fn part2(file: &str) -> i32 { + let file = BufReader::new(File::open(file).unwrap()); + let inumbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; + let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; + let find_number = |s: &str| { + if let Some(num) = inumbers.iter().position(|n| s.starts_with(n)) { Some(num) } + else if let Some(num) = numbers.iter().position(|n| s.starts_with(n)) { Some(num) } + else { None } + }; + let solution = file.lines() + .map(|l| l.unwrap() + " ") + .map(|l| { + (l + .chars() + .collect::>() + .windows(5) + .map(|w| w.iter().collect::()) + .map(|w| find_number(&w)) + .filter(|w| w.is_some()) + .map(|w| w.unwrap()) + .collect::>(), l) + }) + .map(|(nums, _)| nums.first().unwrap() * 10 + nums.last().unwrap()) + .fold(0, |acc, x| acc + x) as i32; + + solution +} + +#[cfg(test)] +mod tests { + use super::*; + #[test] + fn part1_input1() { + assert_eq!(part1("input1"), 142) + } + + #[test] + fn part1_input2() { + assert_eq!(part1("input2"), 54597) + } + + #[test] + fn part2_input1() { + assert_eq!(part2("input1"), 142) + } + + #[test] + fn part2_input2() { + assert_eq!(part2("input2"), 54504) + } + + #[test] + fn part2_input3() { + assert_eq!(part2("input3"), 281) + } +} + +fn main() { + todo!(); +} \ No newline at end of file diff --git a/2023/1/target/.rustc_info.json b/2023/1/target/.rustc_info.json new file mode 100644 index 0000000..1ed4f01 --- /dev/null +++ b/2023/1/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":18191212223194315998,"outputs":{"7808843031524471736":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/dan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.73.0 (cc66ad468 2023-10-03)\nbinary: rustc\ncommit-hash: cc66ad468955717ab92600c770da8c1601a4ff33\ncommit-date: 2023-10-03\nhost: x86_64-unknown-linux-gnu\nrelease: 1.73.0\nLLVM version: 17.0.2\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/2023/1/target/CACHEDIR.TAG b/2023/1/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/2023/1/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/2023/1/target/debug/.cargo-lock b/2023/1/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first new file mode 100644 index 0000000..d29a294 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first @@ -0,0 +1 @@ +14edcefe747430a1 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json new file mode 100644 index 0000000..a5b2288 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":11039742474438789458,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first differ diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-1b5225e4dcac8745/output-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first differ diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/output-test-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first new file mode 100644 index 0000000..0974486 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first @@ -0,0 +1 @@ +9a46df3128b66bb9 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json new file mode 100644 index 0000000..87e8070 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-5644decaa7aef8c9/test-bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":18326522262828315194,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first new file mode 100644 index 0000000..0581afa --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first @@ -0,0 +1 @@ +a58f118c46650732 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json new file mode 100644 index 0000000..669bcb8 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":13126374248311259211,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first differ diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first new file mode 100644 index 0000000..235de02 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-c1729aca58c1b71a/output-bin-first @@ -0,0 +1,4 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"function `part1` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":63,"byte_end":68,"line_start":3,"line_end":3,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part1(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part1` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:3:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part1(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"} +{"message":"function `part2` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":515,"byte_end":520,"line_start":14,"line_end":14,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part2(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part2` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:14:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part2(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\n"} +{"message":"3 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 3 warnings emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first differ diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first new file mode 100644 index 0000000..597143c --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/output-test-bin-first @@ -0,0 +1,2 @@ +{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"} +{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"} diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first new file mode 100644 index 0000000..3b3d785 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first @@ -0,0 +1 @@ +43fe113ee1ab0dd3 \ No newline at end of file diff --git a/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json new file mode 100644 index 0000000..f94cd97 --- /dev/null +++ b/2023/1/target/debug/.fingerprint/first-e53bd6844cb209ab/test-bin-first.json @@ -0,0 +1 @@ +{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":16741232958890476625,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0} \ No newline at end of file diff --git a/2023/1/target/debug/deps/first-1b5225e4dcac8745 b/2023/1/target/debug/deps/first-1b5225e4dcac8745 new file mode 100755 index 0000000..5f11a39 Binary files /dev/null and b/2023/1/target/debug/deps/first-1b5225e4dcac8745 differ diff --git a/2023/1/target/debug/deps/first-1b5225e4dcac8745.d b/2023/1/target/debug/deps/first-1b5225e4dcac8745.d new file mode 100644 index 0000000..1887e34 --- /dev/null +++ b/2023/1/target/debug/deps/first-1b5225e4dcac8745.d @@ -0,0 +1,5 @@ +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-1b5225e4dcac8745: src/main.rs + +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-1b5225e4dcac8745.d: src/main.rs + +src/main.rs: diff --git a/2023/1/target/debug/deps/first-5644decaa7aef8c9.d b/2023/1/target/debug/deps/first-5644decaa7aef8c9.d new file mode 100644 index 0000000..54eaf34 --- /dev/null +++ b/2023/1/target/debug/deps/first-5644decaa7aef8c9.d @@ -0,0 +1,5 @@ +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-5644decaa7aef8c9.rmeta: src/main.rs + +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-5644decaa7aef8c9.d: src/main.rs + +src/main.rs: diff --git a/2023/1/target/debug/deps/first-5644decaa7aef8c9.long-type-7079413460925348245.txt b/2023/1/target/debug/deps/first-5644decaa7aef8c9.long-type-7079413460925348245.txt new file mode 100644 index 0000000..0cbd50d --- /dev/null +++ b/2023/1/target/debug/deps/first-5644decaa7aef8c9.long-type-7079413460925348245.txt @@ -0,0 +1 @@ +Map>, [closure@src/main.rs:25:14: 25:17]>, [closure@src/main.rs:26:14: 26:17]>, [closure@src/main.rs:37:14: 37:25]> \ No newline at end of file diff --git a/2023/1/target/debug/deps/first-c1729aca58c1b71a.d b/2023/1/target/debug/deps/first-c1729aca58c1b71a.d new file mode 100644 index 0000000..23d6b3a --- /dev/null +++ b/2023/1/target/debug/deps/first-c1729aca58c1b71a.d @@ -0,0 +1,5 @@ +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-c1729aca58c1b71a.rmeta: src/main.rs + +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-c1729aca58c1b71a.d: src/main.rs + +src/main.rs: diff --git a/2023/1/target/debug/deps/first-c1729aca58c1b71a.long-type-15978156886238021590.txt b/2023/1/target/debug/deps/first-c1729aca58c1b71a.long-type-15978156886238021590.txt new file mode 100644 index 0000000..0cbd50d --- /dev/null +++ b/2023/1/target/debug/deps/first-c1729aca58c1b71a.long-type-15978156886238021590.txt @@ -0,0 +1 @@ +Map>, [closure@src/main.rs:25:14: 25:17]>, [closure@src/main.rs:26:14: 26:17]>, [closure@src/main.rs:37:14: 37:25]> \ No newline at end of file diff --git a/2023/1/target/debug/deps/first-e53bd6844cb209ab b/2023/1/target/debug/deps/first-e53bd6844cb209ab new file mode 100755 index 0000000..d0ac130 Binary files /dev/null and b/2023/1/target/debug/deps/first-e53bd6844cb209ab differ diff --git a/2023/1/target/debug/deps/first-e53bd6844cb209ab.d b/2023/1/target/debug/deps/first-e53bd6844cb209ab.d new file mode 100644 index 0000000..4b47cbf --- /dev/null +++ b/2023/1/target/debug/deps/first-e53bd6844cb209ab.d @@ -0,0 +1,5 @@ +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-e53bd6844cb209ab: src/main.rs + +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-e53bd6844cb209ab.d: src/main.rs + +src/main.rs: diff --git a/2023/1/target/debug/deps/libfirst-5644decaa7aef8c9.rmeta b/2023/1/target/debug/deps/libfirst-5644decaa7aef8c9.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/deps/libfirst-c1729aca58c1b71a.rmeta b/2023/1/target/debug/deps/libfirst-c1729aca58c1b71a.rmeta new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/first b/2023/1/target/debug/first new file mode 100755 index 0000000..5f11a39 Binary files /dev/null and b/2023/1/target/debug/first differ diff --git a/2023/1/target/debug/first.d b/2023/1/target/debug/first.d new file mode 100644 index 0000000..6d9667f --- /dev/null +++ b/2023/1/target/debug/first.d @@ -0,0 +1 @@ +/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/first: /home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/src/main.rs diff --git a/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/dep-graph.bin b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/dep-graph.bin new file mode 100644 index 0000000..3705028 Binary files /dev/null and b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/dep-graph.bin differ diff --git a/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/query-cache.bin b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/query-cache.bin new file mode 100644 index 0000000..a9f5ea6 Binary files /dev/null and b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/query-cache.bin differ diff --git a/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/work-products.bin b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/work-products.bin new file mode 100644 index 0000000..5143fb2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr-24yrrijl8b02g8bv2ov8cgw0z/work-products.bin differ diff --git a/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr.lock b/2023/1/target/debug/incremental/first-1tpbhrug0loy2/s-gr3y62es94-1e3odzr.lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/129u38f76zxhnjfz.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/129u38f76zxhnjfz.o new file mode 100644 index 0000000..3f187de Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/129u38f76zxhnjfz.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/135lr8djlukz0zc2.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/135lr8djlukz0zc2.o new file mode 100644 index 0000000..654a33e Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/135lr8djlukz0zc2.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/14whpjoclwngwzs1.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/14whpjoclwngwzs1.o new file mode 100644 index 0000000..97070e4 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/14whpjoclwngwzs1.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1h1mxm8bp5wb2u2x.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1h1mxm8bp5wb2u2x.o new file mode 100644 index 0000000..46299e1 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1h1mxm8bp5wb2u2x.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1l7u060wrmvc9n7w.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1l7u060wrmvc9n7w.o new file mode 100644 index 0000000..825d8d9 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1l7u060wrmvc9n7w.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1oiktokvy60o99o1.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1oiktokvy60o99o1.o new file mode 100644 index 0000000..94f73db Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1oiktokvy60o99o1.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1syjlk4zoeyscns2.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1syjlk4zoeyscns2.o new file mode 100644 index 0000000..650ec09 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1syjlk4zoeyscns2.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1xu58zj4jvw0v591.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1xu58zj4jvw0v591.o new file mode 100644 index 0000000..2a17d45 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/1xu58zj4jvw0v591.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/242u5wiqls9sq6o5.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/242u5wiqls9sq6o5.o new file mode 100644 index 0000000..35f0e77 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/242u5wiqls9sq6o5.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2mv7z43m0xhsb32p.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2mv7z43m0xhsb32p.o new file mode 100644 index 0000000..564646c Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2mv7z43m0xhsb32p.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2okgjgh6rh1w4k2i.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2okgjgh6rh1w4k2i.o new file mode 100644 index 0000000..bc38c3c Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2okgjgh6rh1w4k2i.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2qbz5jzj7cz09aam.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2qbz5jzj7cz09aam.o new file mode 100644 index 0000000..544158b Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2qbz5jzj7cz09aam.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2sil92bs69dc5uzn.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2sil92bs69dc5uzn.o new file mode 100644 index 0000000..63420df Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2sil92bs69dc5uzn.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2tfxtceehss9e3wm.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2tfxtceehss9e3wm.o new file mode 100644 index 0000000..1c5eba0 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/2tfxtceehss9e3wm.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/35sc8qiqyygdzmdc.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/35sc8qiqyygdzmdc.o new file mode 100644 index 0000000..0aaa716 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/35sc8qiqyygdzmdc.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/367ga8g2ffxq3upe.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/367ga8g2ffxq3upe.o new file mode 100644 index 0000000..e3f7efb Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/367ga8g2ffxq3upe.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3d75c3me8zowt0z7.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3d75c3me8zowt0z7.o new file mode 100644 index 0000000..8192248 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3d75c3me8zowt0z7.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gea66auah6sl2pe.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gea66auah6sl2pe.o new file mode 100644 index 0000000..b32e723 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gea66auah6sl2pe.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gytugsyyldsvv4.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gytugsyyldsvv4.o new file mode 100644 index 0000000..65e3c6d Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/3gytugsyyldsvv4.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/416riqlz9f8rukh8.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/416riqlz9f8rukh8.o new file mode 100644 index 0000000..308a699 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/416riqlz9f8rukh8.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/44snt284vfdxdgp1.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/44snt284vfdxdgp1.o new file mode 100644 index 0000000..5313177 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/44snt284vfdxdgp1.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/47gfpe1nth8p54i4.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/47gfpe1nth8p54i4.o new file mode 100644 index 0000000..1ebf71f Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/47gfpe1nth8p54i4.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4acs4djuoro1tjja.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4acs4djuoro1tjja.o new file mode 100644 index 0000000..b870210 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4acs4djuoro1tjja.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bgva7pxgcao6oor.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bgva7pxgcao6oor.o new file mode 100644 index 0000000..630e8a2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bgva7pxgcao6oor.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bn6efu76q5xp75f.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bn6efu76q5xp75f.o new file mode 100644 index 0000000..7e00c0c Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4bn6efu76q5xp75f.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ea6fwcfa9mrxr3c.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ea6fwcfa9mrxr3c.o new file mode 100644 index 0000000..bf4d758 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ea6fwcfa9mrxr3c.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4eakk2aa3dh4p2g0.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4eakk2aa3dh4p2g0.o new file mode 100644 index 0000000..2c81623 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4eakk2aa3dh4p2g0.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4g1cx4ya9cds9mzu.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4g1cx4ya9cds9mzu.o new file mode 100644 index 0000000..8338e59 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4g1cx4ya9cds9mzu.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4k8ei1tuogtaytxo.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4k8ei1tuogtaytxo.o new file mode 100644 index 0000000..0580596 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4k8ei1tuogtaytxo.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4p4jincrxhlvahdi.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4p4jincrxhlvahdi.o new file mode 100644 index 0000000..724e5fe Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4p4jincrxhlvahdi.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sckjq8lg56og2jx.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sckjq8lg56og2jx.o new file mode 100644 index 0000000..e0199ae Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sckjq8lg56og2jx.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sh5sdivvfnepyaf.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sh5sdivvfnepyaf.o new file mode 100644 index 0000000..faa97df Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4sh5sdivvfnepyaf.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ui3wuhiw92paz6m.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ui3wuhiw92paz6m.o new file mode 100644 index 0000000..a5cf4c4 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/4ui3wuhiw92paz6m.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/53jiczjb1jm6yb0v.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/53jiczjb1jm6yb0v.o new file mode 100644 index 0000000..73d9b75 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/53jiczjb1jm6yb0v.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/5c2rqihlpmxcn44g.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/5c2rqihlpmxcn44g.o new file mode 100644 index 0000000..b6810f2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/5c2rqihlpmxcn44g.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/dep-graph.bin b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/dep-graph.bin new file mode 100644 index 0000000..2a25478 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/dep-graph.bin differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/f3pe4tyhzknzooq.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/f3pe4tyhzknzooq.o new file mode 100644 index 0000000..dd8efb9 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/f3pe4tyhzknzooq.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/ko7xcc7xcrz3mti.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/ko7xcc7xcrz3mti.o new file mode 100644 index 0000000..b3807dc Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/ko7xcc7xcrz3mti.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mfacl6s3465xh54.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mfacl6s3465xh54.o new file mode 100644 index 0000000..ff91e0b Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mfacl6s3465xh54.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mlgumejfi1gbhjo.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mlgumejfi1gbhjo.o new file mode 100644 index 0000000..0f25582 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/mlgumejfi1gbhjo.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/nbab762un8w5c43.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/nbab762un8w5c43.o new file mode 100644 index 0000000..9cd172a Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/nbab762un8w5c43.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/o7anj9vpvjqeqf7.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/o7anj9vpvjqeqf7.o new file mode 100644 index 0000000..e38736d Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/o7anj9vpvjqeqf7.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/os4gv9krxutmw9u.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/os4gv9krxutmw9u.o new file mode 100644 index 0000000..04c2894 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/os4gv9krxutmw9u.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/oywim8w9vcmyl72.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/oywim8w9vcmyl72.o new file mode 100644 index 0000000..cbc34a2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/oywim8w9vcmyl72.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/query-cache.bin b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/query-cache.bin new file mode 100644 index 0000000..8b31d37 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/query-cache.bin differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/v11ci2wipyy1wqv.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/v11ci2wipyy1wqv.o new file mode 100644 index 0000000..32fe3f7 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/v11ci2wipyy1wqv.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/work-products.bin b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/work-products.bin new file mode 100644 index 0000000..63f4181 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/work-products.bin differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/z0f1cc4zodjgt3h.o b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/z0f1cc4zodjgt3h.o new file mode 100644 index 0000000..eec443b Binary files /dev/null and b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j-a5chlkkf7g5u8lups7f4urpwj/z0f1cc4zodjgt3h.o differ diff --git a/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j.lock b/2023/1/target/debug/incremental/first-25cexpvlzp6yk/s-gr3o5nicf9-j7a45j.lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/dep-graph.bin b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/dep-graph.bin new file mode 100644 index 0000000..58173dd Binary files /dev/null and b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/dep-graph.bin differ diff --git a/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/query-cache.bin b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/query-cache.bin new file mode 100644 index 0000000..33c2a7d Binary files /dev/null and b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/query-cache.bin differ diff --git a/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/work-products.bin b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/work-products.bin new file mode 100644 index 0000000..5143fb2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od-4yygx8fim84rtd6jt1ghuhq4m/work-products.bin differ diff --git a/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od.lock b/2023/1/target/debug/incremental/first-25nqeubmwa2es/s-gr3y62es94-g6b4od.lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/19kt34aqg7rc6x0a.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/19kt34aqg7rc6x0a.o new file mode 100644 index 0000000..591e1a3 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/19kt34aqg7rc6x0a.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1af4hi94j2ksfx9r.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1af4hi94j2ksfx9r.o new file mode 100644 index 0000000..a65b363 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1af4hi94j2ksfx9r.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1bsh9fadg5ogwsmb.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1bsh9fadg5ogwsmb.o new file mode 100644 index 0000000..cd712a6 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1bsh9fadg5ogwsmb.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1i93uttbxqbbcx87.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1i93uttbxqbbcx87.o new file mode 100644 index 0000000..a16c902 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1i93uttbxqbbcx87.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1iirvjsgpyrc8zcz.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1iirvjsgpyrc8zcz.o new file mode 100644 index 0000000..a78b63d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1iirvjsgpyrc8zcz.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1jwybqsjfkpnon6t.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1jwybqsjfkpnon6t.o new file mode 100644 index 0000000..a687871 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1jwybqsjfkpnon6t.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1l1v0s6zyjipn2xa.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1l1v0s6zyjipn2xa.o new file mode 100644 index 0000000..232f498 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1l1v0s6zyjipn2xa.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nveoldq8817gegx.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nveoldq8817gegx.o new file mode 100644 index 0000000..1841952 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nveoldq8817gegx.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nvx0s61zr88re41.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nvx0s61zr88re41.o new file mode 100644 index 0000000..159224d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1nvx0s61zr88re41.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ob2obnxoxffap4a.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ob2obnxoxffap4a.o new file mode 100644 index 0000000..2170cb2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ob2obnxoxffap4a.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ucrbevrl06btyc8.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ucrbevrl06btyc8.o new file mode 100644 index 0000000..7f3d076 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1ucrbevrl06btyc8.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1un8i7kxqo2imflv.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1un8i7kxqo2imflv.o new file mode 100644 index 0000000..7906d28 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/1un8i7kxqo2imflv.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/207nnkh1k7uwaop6.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/207nnkh1k7uwaop6.o new file mode 100644 index 0000000..cfcfb2e Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/207nnkh1k7uwaop6.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/25bl0zhvxpm6j1jd.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/25bl0zhvxpm6j1jd.o new file mode 100644 index 0000000..c6285b7 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/25bl0zhvxpm6j1jd.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/272wmchrfme9e62o.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/272wmchrfme9e62o.o new file mode 100644 index 0000000..255396f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/272wmchrfme9e62o.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/286x94n0yglljb0z.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/286x94n0yglljb0z.o new file mode 100644 index 0000000..3e60d63 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/286x94n0yglljb0z.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2iz1ls5v7sp771kb.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2iz1ls5v7sp771kb.o new file mode 100644 index 0000000..3b2ed8b Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2iz1ls5v7sp771kb.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2sk4u53qgigh9ist.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2sk4u53qgigh9ist.o new file mode 100644 index 0000000..86c005f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2sk4u53qgigh9ist.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2uyvn1sz67c46gz3.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2uyvn1sz67c46gz3.o new file mode 100644 index 0000000..404572d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2uyvn1sz67c46gz3.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2ycu5qscn91v9zwk.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2ycu5qscn91v9zwk.o new file mode 100644 index 0000000..cae4a08 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2ycu5qscn91v9zwk.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2z9pkza0pw3yp9hm.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2z9pkza0pw3yp9hm.o new file mode 100644 index 0000000..39a0da1 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/2z9pkza0pw3yp9hm.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3570o3pynn8tclo7.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3570o3pynn8tclo7.o new file mode 100644 index 0000000..0885717 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3570o3pynn8tclo7.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3berucg519q4h1cu.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3berucg519q4h1cu.o new file mode 100644 index 0000000..c0d9700 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3berucg519q4h1cu.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3c8dnfrhdez44lp.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3c8dnfrhdez44lp.o new file mode 100644 index 0000000..d7e4a48 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3c8dnfrhdez44lp.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3d7d4rfd4vozc9zl.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3d7d4rfd4vozc9zl.o new file mode 100644 index 0000000..8121995 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3d7d4rfd4vozc9zl.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3e7nzo512tewbmc0.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3e7nzo512tewbmc0.o new file mode 100644 index 0000000..806f687 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3e7nzo512tewbmc0.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3g5dcgexh17vfg8e.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3g5dcgexh17vfg8e.o new file mode 100644 index 0000000..39e18d4 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3g5dcgexh17vfg8e.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3hkldihz1abzqkz5.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3hkldihz1abzqkz5.o new file mode 100644 index 0000000..d91b0f2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3hkldihz1abzqkz5.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3ie8w7xq2efxsl66.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3ie8w7xq2efxsl66.o new file mode 100644 index 0000000..4da8442 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3ie8w7xq2efxsl66.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3iubcwz6l0oehirz.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3iubcwz6l0oehirz.o new file mode 100644 index 0000000..1c92e92 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3iubcwz6l0oehirz.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3jrbbwcfqui9jmfx.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3jrbbwcfqui9jmfx.o new file mode 100644 index 0000000..95cd5d1 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3jrbbwcfqui9jmfx.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3o43rkqcke0f17j2.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3o43rkqcke0f17j2.o new file mode 100644 index 0000000..b4d403d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3o43rkqcke0f17j2.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3s48wvzr603uwgc8.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3s48wvzr603uwgc8.o new file mode 100644 index 0000000..1984805 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/3s48wvzr603uwgc8.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45lxpl2dvhli3jm.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45lxpl2dvhli3jm.o new file mode 100644 index 0000000..6acdf7c Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45lxpl2dvhli3jm.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45sb9g78r4de0ds5.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45sb9g78r4de0ds5.o new file mode 100644 index 0000000..a2305ac Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/45sb9g78r4de0ds5.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/49lxhgxagkri2v35.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/49lxhgxagkri2v35.o new file mode 100644 index 0000000..0387c07 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/49lxhgxagkri2v35.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4elu27h3jvh6m3t.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4elu27h3jvh6m3t.o new file mode 100644 index 0000000..5e513e2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4elu27h3jvh6m3t.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hl1baxkf7mpgrnf.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hl1baxkf7mpgrnf.o new file mode 100644 index 0000000..17544ac Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hl1baxkf7mpgrnf.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hzu1ic01rtmtqqi.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hzu1ic01rtmtqqi.o new file mode 100644 index 0000000..9e0209a Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4hzu1ic01rtmtqqi.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4m5cgpkcedxrr2sc.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4m5cgpkcedxrr2sc.o new file mode 100644 index 0000000..68c2d0b Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4m5cgpkcedxrr2sc.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4tpseh9lnar62lf9.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4tpseh9lnar62lf9.o new file mode 100644 index 0000000..ca49fa2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4tpseh9lnar62lf9.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4trvxw16aacuqw1h.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4trvxw16aacuqw1h.o new file mode 100644 index 0000000..ef9546b Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/4trvxw16aacuqw1h.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/51cug1ztjwgd7hqw.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/51cug1ztjwgd7hqw.o new file mode 100644 index 0000000..198903d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/51cug1ztjwgd7hqw.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/53qqnt1upt7dsrpc.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/53qqnt1upt7dsrpc.o new file mode 100644 index 0000000..5a5e47d Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/53qqnt1upt7dsrpc.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5aeg489d537joc7b.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5aeg489d537joc7b.o new file mode 100644 index 0000000..16af318 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5aeg489d537joc7b.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5dngs5yomaz7v1jo.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5dngs5yomaz7v1jo.o new file mode 100644 index 0000000..7ed2ccc Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5dngs5yomaz7v1jo.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5gmddq7y4dmce17e.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5gmddq7y4dmce17e.o new file mode 100644 index 0000000..d8f8030 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/5gmddq7y4dmce17e.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/8clqj5qgsm8dpo0.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/8clqj5qgsm8dpo0.o new file mode 100644 index 0000000..80b0c6f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/8clqj5qgsm8dpo0.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/b9gyvqlw8kqpagq.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/b9gyvqlw8kqpagq.o new file mode 100644 index 0000000..26ab87f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/b9gyvqlw8kqpagq.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/dep-graph.bin b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/dep-graph.bin new file mode 100644 index 0000000..65e8cdb Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/dep-graph.bin differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/execjfsug7891r7.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/execjfsug7891r7.o new file mode 100644 index 0000000..a1b3a49 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/execjfsug7891r7.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/ix9zg6awbeuowty.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/ix9zg6awbeuowty.o new file mode 100644 index 0000000..a73e8cd Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/ix9zg6awbeuowty.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/jnq7k8ickpjnaty.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/jnq7k8ickpjnaty.o new file mode 100644 index 0000000..d4b6963 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/jnq7k8ickpjnaty.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kb5e43w15cazik1.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kb5e43w15cazik1.o new file mode 100644 index 0000000..050710e Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kb5e43w15cazik1.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kndhcv609ytka87.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kndhcv609ytka87.o new file mode 100644 index 0000000..c41ff2e Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/kndhcv609ytka87.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/pooev51iegdqb6p.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/pooev51iegdqb6p.o new file mode 100644 index 0000000..d7f0cfd Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/pooev51iegdqb6p.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/query-cache.bin b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/query-cache.bin new file mode 100644 index 0000000..da9dc9f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/query-cache.bin differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/tvu2rwuk5rzs1v2.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/tvu2rwuk5rzs1v2.o new file mode 100644 index 0000000..96fd46f Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/tvu2rwuk5rzs1v2.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/work-products.bin b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/work-products.bin new file mode 100644 index 0000000..7f316b2 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/work-products.bin differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/wtrmnchd5u1pkj0.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/wtrmnchd5u1pkj0.o new file mode 100644 index 0000000..c68fbbf Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/wtrmnchd5u1pkj0.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/y5qn3mj2e89d2v5.o b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/y5qn3mj2e89d2v5.o new file mode 100644 index 0000000..537ed83 Binary files /dev/null and b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi-8numbe05k42kujj5orkappfsh/y5qn3mj2e89d2v5.o differ diff --git a/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi.lock b/2023/1/target/debug/incremental/first-32f1znxuu9nig/s-gr3y63er2s-pebosi.lock new file mode 100644 index 0000000..e69de29 diff --git a/2023/2/.vscode/settings.json b/2023/2/.vscode/settings.json new file mode 100644 index 0000000..6c4281c --- /dev/null +++ b/2023/2/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "spellright.language": [], + "spellright.documentTypes": [ + "latex", + "plaintext" + ] +} \ No newline at end of file diff --git a/2023/2/README.md b/2023/2/README.md new file mode 100644 index 0000000..98d21f4 --- /dev/null +++ b/2023/2/README.md @@ -0,0 +1,51 @@ +# Day 2: Cube Conundrum + +You're launched high into the atmosphere! The apex of your trajectory just barely reaches the surface of a large island floating in the sky. You gently land in a fluffy pile of leaves. It's quite cold, but you don't see much snow. An Elf runs over to greet you. + +The Elf explains that you've arrived at Snow Island and apologizes for the lack of snow. He'll be happy to explain the situation, but it's a bit of a walk, so you have some time. They don't get many visitors up here; would you like to play a game in the meantime? + +As you walk, the Elf shows you a small bag and some cubes which are either red, green, or blue. Each time you play this game, he will hide a secret number of cubes of each color in the bag, and your goal is to figure out information about the number of cubes. + +To get information, once a bag has been loaded with cubes, the Elf will reach into the bag, grab a handful of random cubes, show them to you, and then put them back in the bag. He'll do this a few times per game. + +You play several games and record the information from each game (your puzzle input). Each game is listed with its ID number (like the `11` in `Game 11: ...`) followed by a semicolon-separated list of subsets of cubes that were revealed from the bag (like `3 red, 5 green, 4 blue`). + +For example, the record of a few games might look like this: + +```txt +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green +``` + +In game 1, three sets of cubes are revealed from the bag (and then put back again). The first set is 3 blue cubes and 4 red cubes; the second set is 1 red cube, 2 green cubes, and 6 blue cubes; the third set is only 2 green cubes. + +The Elf would first like to know which games would have been possible if the bag contained only **12 red cubes, 13 green cubes, and 14 blue cubes**? + +In the example above, games 1, 2, and 5 would have been possible if the bag had been loaded with that configuration. However, game 3 would have been impossible because at one point the Elf showed you 20 red cubes at once; similarly, game 4 would also have been impossible because the Elf showed you 15 blue cubes at once. If you add up the IDs of the games that would have been possible, you get 8. + +Determine which games would have been possible if the bag had been loaded with only 12 red cubes, 13 green cubes, and 14 blue cubes. **What is the sum of the IDs of those games**? + +## Part Two + +The Elf says they've stopped producing snow because they aren't getting any water! He isn't sure why the water stopped; however, he can show you how to get to the water source to check it out for yourself. It's just up ahead! + +As you continue your walk, the Elf poses a second question: in each game you played, what is the fewest number of cubes of each color that could have been in the bag to make the game possible? + +Again consider the example games from earlier: + +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green +In game 1, the game could have been played with as few as 4 red, 2 green, and 6 blue cubes. If any color had even one fewer cube, the game would have been impossible. +Game 2 could have been played with a minimum of 1 red, 3 green, and 4 blue cubes. +Game 3 must have been played with at least 20 red, 13 green, and 6 blue cubes. +Game 4 required at least 14 red, 3 green, and 15 blue cubes. +Game 5 needed no fewer than 6 red, 3 green, and 2 blue cubes in the bag. +The power of a set of cubes is equal to the numbers of red, green, and blue cubes multiplied together. The power of the minimum set of cubes in game 1 is 48. In games 2-5 it was 12, 1560, 630, and 36, respectively. Adding up these five powers produces the sum 2286. + +For each game, find the minimum set of cubes that must have been present. What is the sum of the power of these sets? \ No newline at end of file diff --git a/2023/2/input1 b/2023/2/input1 new file mode 100644 index 0000000..1cd7d33 --- /dev/null +++ b/2023/2/input1 @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green \ No newline at end of file diff --git a/2023/2/input2 b/2023/2/input2 new file mode 100644 index 0000000..cca5ee9 --- /dev/null +++ b/2023/2/input2 @@ -0,0 +1,100 @@ +Game 1: 4 green, 3 blue, 11 red; 7 red, 5 green, 10 blue; 3 green, 8 blue, 8 red; 4 red, 12 blue; 15 red, 3 green, 10 blue +Game 2: 3 red, 1 blue, 2 green; 1 blue, 9 green; 1 red, 10 green +Game 3: 5 green, 9 red, 4 blue; 3 green, 7 blue; 12 blue, 3 green, 3 red; 3 blue, 7 red, 2 green; 7 blue, 3 green, 10 red +Game 4: 2 green, 2 blue; 12 red, 9 green, 2 blue; 13 green, 15 red, 4 blue; 14 red, 3 green, 5 blue; 6 red, 1 green; 1 blue, 2 red, 2 green +Game 5: 2 green, 6 blue; 1 red, 3 green, 5 blue; 3 green, 4 blue; 3 blue, 5 green, 1 red; 5 blue +Game 6: 5 green, 1 blue, 3 red; 8 green, 15 red; 16 green, 5 red, 1 blue +Game 7: 1 blue, 3 red, 11 green; 18 red, 16 blue, 5 green; 13 blue, 5 green; 1 red, 8 green, 15 blue +Game 8: 1 green, 14 blue, 1 red; 10 blue; 1 green +Game 9: 4 green, 12 blue, 1 red; 14 blue; 2 blue, 4 green; 4 green, 1 red, 10 blue +Game 10: 11 green, 9 red; 12 red, 9 green; 5 red, 7 blue, 5 green; 6 green, 1 blue, 12 red; 3 red, 3 blue; 16 red, 9 blue, 7 green +Game 11: 11 green, 1 red, 9 blue; 2 red, 13 green, 5 blue; 5 green, 2 red, 5 blue; 5 green, 7 blue; 1 red, 5 blue, 1 green +Game 12: 5 green, 1 red; 1 red, 4 green; 1 blue, 12 green; 15 green, 4 blue; 4 blue, 19 green; 16 green, 4 blue +Game 13: 1 red, 9 green, 5 blue; 10 blue, 7 green, 1 red; 3 green, 2 red, 14 blue; 16 blue, 3 red +Game 14: 9 red, 1 blue, 2 green; 16 blue, 7 red; 2 green, 3 red, 14 blue; 1 green, 9 blue +Game 15: 6 blue; 4 blue; 1 red, 16 blue, 3 green +Game 16: 14 green, 5 red, 1 blue; 1 red, 1 blue; 5 blue +Game 17: 1 blue, 1 green, 3 red; 2 red, 2 blue, 2 green; 1 blue, 1 red; 1 red, 2 green, 2 blue; 2 blue; 1 green, 2 red, 1 blue +Game 18: 4 blue, 2 green, 1 red; 1 green, 1 red, 10 blue; 1 green, 1 red, 2 blue; 1 red, 5 blue; 3 green, 6 blue; 1 red, 1 green, 7 blue +Game 19: 1 blue, 13 green, 12 red; 7 blue, 2 green, 1 red; 1 blue, 3 red, 3 green; 3 blue, 8 green, 10 red; 7 blue, 2 green +Game 20: 1 red, 17 blue; 10 blue, 5 green; 9 green, 1 red, 3 blue; 1 red, 5 green, 1 blue +Game 21: 3 red, 6 blue, 5 green; 4 blue, 1 red, 7 green; 6 blue, 4 red, 9 green +Game 22: 11 blue, 2 red, 6 green; 16 blue, 5 red, 6 green; 12 red, 2 green, 10 blue; 14 blue, 2 green, 11 red +Game 23: 3 red, 5 green; 10 blue, 1 green, 9 red; 2 red, 10 green, 9 blue; 9 blue, 7 green +Game 24: 8 blue, 1 red; 3 red, 9 blue; 9 green, 2 red, 8 blue +Game 25: 2 red, 1 green, 1 blue; 1 green, 12 blue, 2 red; 2 red, 1 blue; 2 blue; 1 green, 10 blue; 6 blue +Game 26: 2 red; 4 green, 1 red, 7 blue; 11 blue, 2 red, 4 green; 1 red, 1 blue; 1 red, 5 green, 12 blue +Game 27: 1 red, 7 green, 8 blue; 13 green, 12 blue, 1 red; 6 red, 1 green, 10 blue; 8 red, 2 blue, 2 green; 11 blue, 4 green, 4 red +Game 28: 1 red, 8 blue, 3 green; 12 green, 4 blue; 1 red, 4 blue, 11 green; 7 blue, 10 green, 10 red; 11 blue, 7 red, 8 green; 10 red, 2 green, 2 blue +Game 29: 4 green, 2 red; 1 blue, 11 red; 2 blue, 3 green, 1 red; 16 red; 3 green, 8 red, 1 blue; 2 blue, 7 green, 12 red +Game 30: 1 blue, 3 green; 4 green, 2 blue; 3 red, 5 blue; 4 green, 1 red +Game 31: 2 red, 2 blue, 3 green; 2 green, 3 blue, 8 red; 7 red, 16 blue, 2 green; 5 red, 20 blue, 2 green +Game 32: 2 red, 1 green, 4 blue; 4 green, 4 red, 1 blue; 4 red, 4 blue; 1 blue, 4 red, 2 green; 4 blue, 3 green, 4 red +Game 33: 11 green, 4 blue, 10 red; 2 green, 13 red, 7 blue; 13 red, 2 blue, 8 green; 15 red, 9 blue, 12 green; 14 red, 10 green, 2 blue; 13 red, 7 green +Game 34: 11 red, 6 blue, 4 green; 16 red, 7 blue, 4 green; 6 red, 18 green, 6 blue; 3 blue, 16 red, 3 green; 2 red, 3 blue, 17 green; 3 green, 9 red, 6 blue +Game 35: 6 green, 10 red, 12 blue; 4 red, 1 blue, 2 green; 3 green, 8 blue, 7 red; 6 red, 12 blue, 2 green +Game 36: 4 green, 2 blue, 2 red; 3 green, 10 red, 1 blue; 1 blue, 3 green, 2 red; 2 green, 1 red; 1 blue, 5 red +Game 37: 3 blue, 1 red, 2 green; 8 red, 4 green, 10 blue; 4 red, 4 green +Game 38: 13 green, 3 red, 2 blue; 1 red, 13 green, 2 blue; 20 green, 3 red, 2 blue; 1 red, 2 blue, 12 green +Game 39: 13 blue, 1 red, 8 green; 5 red, 3 green, 8 blue; 6 blue, 4 green; 18 blue, 7 green, 1 red; 4 green, 3 blue, 5 red; 6 blue, 4 red, 1 green +Game 40: 2 red, 2 blue, 9 green; 1 blue, 2 red, 12 green; 16 green, 11 blue, 1 red; 1 green, 2 red; 3 blue, 2 red +Game 41: 7 blue, 1 red; 4 blue, 1 red; 3 blue, 1 red, 2 green; 13 blue +Game 42: 18 red, 1 green, 13 blue; 2 blue, 2 green, 7 red; 16 red, 12 blue; 1 green, 10 blue, 14 red +Game 43: 15 red, 6 green, 2 blue; 3 blue, 9 red, 3 green; 13 red +Game 44: 2 blue, 5 green, 3 red; 4 red, 4 blue, 19 green; 5 red, 3 blue, 9 green; 19 green, 6 red, 5 blue +Game 45: 5 red, 4 green, 13 blue; 12 red, 10 blue; 3 green, 9 blue, 5 red; 10 blue, 18 red, 5 green; 16 red, 6 green, 17 blue +Game 46: 3 green; 3 green, 2 blue; 4 blue, 2 red, 3 green; 5 blue, 3 green, 4 red; 1 green, 1 blue +Game 47: 2 blue, 1 red, 10 green; 2 red; 6 red, 1 blue; 16 red, 2 blue, 8 green; 5 blue, 8 red, 7 green +Game 48: 11 green, 4 red, 2 blue; 2 blue, 5 green, 8 red; 9 green, 6 red; 3 red, 3 green, 1 blue; 2 blue, 12 green, 17 red +Game 49: 10 blue, 4 green, 1 red; 10 red, 10 blue; 12 blue, 7 red; 13 blue, 6 green +Game 50: 1 red, 19 green, 7 blue; 4 red, 1 green, 5 blue; 16 green, 8 red, 8 blue +Game 51: 12 green, 18 blue; 13 green, 14 blue, 4 red; 7 green, 4 red, 14 blue; 8 green, 2 blue, 3 red; 16 blue, 8 green +Game 52: 9 blue, 9 green, 3 red; 8 blue, 1 green, 13 red; 2 red, 8 blue, 9 green; 13 red, 4 green; 6 green, 15 red; 11 blue, 11 red, 9 green +Game 53: 2 red, 4 green, 3 blue; 5 blue, 16 green; 4 blue, 8 red, 12 green +Game 54: 6 red, 16 green; 6 red, 15 green; 8 green, 8 red, 2 blue +Game 55: 9 red, 2 green; 4 blue; 2 green, 2 red, 7 blue; 1 red, 16 blue, 1 green; 17 blue, 5 red +Game 56: 14 green, 3 red, 9 blue; 14 blue, 15 green, 2 red; 8 red, 13 blue, 15 green; 15 blue, 2 red, 12 green; 3 red, 7 blue, 10 green; 10 blue, 13 green +Game 57: 1 blue, 10 green, 2 red; 4 blue, 9 green, 11 red; 2 blue +Game 58: 4 red, 2 blue, 5 green; 1 blue, 5 green, 4 red; 3 green, 4 red, 8 blue; 4 blue, 7 green; 5 green, 4 blue; 1 blue, 6 red +Game 59: 5 blue, 4 red, 3 green; 8 blue, 12 green, 5 red; 5 red, 8 blue, 15 green +Game 60: 6 red, 12 blue, 1 green; 10 blue, 20 green, 4 red; 6 blue, 1 green, 5 red; 9 red, 12 blue, 14 green; 15 green, 1 red, 14 blue; 10 green, 13 blue +Game 61: 1 blue, 12 green, 3 red; 4 green, 1 red, 4 blue; 8 red, 4 green, 6 blue +Game 62: 6 blue, 7 green, 3 red; 6 blue, 3 red, 3 green; 11 green, 6 red, 2 blue; 2 red, 6 blue, 3 green; 2 green, 3 blue, 3 red; 3 blue, 11 green, 11 red +Game 63: 5 green, 6 blue, 4 red; 6 green, 12 blue; 3 green, 9 blue, 10 red; 1 blue, 4 red, 5 green +Game 64: 10 green, 14 red; 1 blue, 9 red; 3 green, 10 blue, 14 red; 5 green, 3 blue, 12 red; 5 blue, 12 red, 13 green +Game 65: 1 red, 5 green, 10 blue; 14 red, 5 green, 10 blue; 10 blue, 10 red +Game 66: 9 green, 8 blue, 1 red; 8 red, 14 blue; 8 red, 7 blue, 2 green; 4 blue, 3 green, 5 red; 2 red, 8 green, 8 blue +Game 67: 4 red, 3 green, 3 blue; 4 green, 1 blue, 4 red; 1 blue, 3 red; 10 blue; 16 blue, 6 red, 4 green +Game 68: 6 blue, 6 green, 9 red; 4 blue, 9 red, 3 green; 3 blue, 8 red +Game 69: 4 green, 12 red, 3 blue; 2 red, 3 blue; 2 blue, 4 red, 2 green; 1 blue, 3 red +Game 70: 4 red, 3 green, 15 blue; 1 green, 4 red; 1 red, 1 green, 5 blue +Game 71: 4 blue, 2 red, 10 green; 7 red, 6 blue, 11 green; 4 blue, 7 red, 8 green +Game 72: 9 red, 9 blue, 1 green; 4 red, 6 green, 5 blue; 3 green, 7 red, 2 blue +Game 73: 3 green, 9 red; 4 green, 15 red; 12 red, 2 blue; 14 red, 3 green +Game 74: 2 red, 6 blue, 1 green; 3 red, 6 blue; 1 green, 12 blue, 14 red +Game 75: 3 green, 18 red; 1 green, 7 red, 1 blue; 2 red, 2 green, 3 blue; 11 red; 2 red, 3 green, 2 blue +Game 76: 6 green, 2 red, 5 blue; 13 green, 5 blue; 5 blue, 1 red, 1 green +Game 77: 4 blue, 6 green, 3 red; 15 red, 1 green; 4 green, 11 red, 13 blue; 8 blue, 6 green, 9 red; 3 blue, 1 green, 11 red; 3 green, 3 red +Game 78: 11 green, 1 blue, 2 red; 7 red, 16 blue, 11 green; 9 blue, 10 red, 6 green; 1 green, 8 blue, 10 red; 8 blue, 6 red, 1 green +Game 79: 2 blue, 5 green, 4 red; 1 blue, 1 red, 1 green; 1 blue, 5 red, 10 green; 6 red, 3 green, 3 blue; 8 red, 9 green, 6 blue; 7 blue, 6 green, 13 red +Game 80: 10 green, 7 blue, 5 red; 5 red, 1 green, 6 blue; 8 blue, 2 red, 8 green +Game 81: 3 green, 10 red; 6 blue, 8 green, 14 red; 4 green, 4 blue, 13 red; 5 blue, 11 green, 6 red; 16 red, 8 green, 5 blue; 6 green, 18 red, 6 blue +Game 82: 13 red, 1 green, 7 blue; 8 green, 4 blue, 12 red; 18 red, 5 green, 3 blue; 13 red, 4 green, 9 blue +Game 83: 1 red, 3 green, 4 blue; 5 blue, 4 green, 1 red; 3 green, 1 red, 12 blue; 4 green, 11 blue +Game 84: 3 blue, 10 green, 2 red; 3 red, 8 blue; 11 blue, 12 red, 14 green; 2 red, 11 green, 2 blue +Game 85: 8 blue, 2 green, 1 red; 13 blue, 6 red; 3 blue, 5 green +Game 86: 16 red, 8 blue; 7 blue; 16 red, 16 blue, 1 green; 15 blue, 11 red; 2 green, 7 red, 5 blue +Game 87: 6 green, 9 blue, 4 red; 1 red, 1 green, 4 blue; 5 blue, 13 green, 3 red; 2 green, 4 red; 16 blue, 10 green, 3 red +Game 88: 1 blue, 14 red; 14 red, 3 blue, 8 green; 1 blue, 5 green +Game 89: 12 green, 14 blue, 3 red; 2 red, 3 blue, 3 green; 2 blue, 8 green; 1 red, 3 green, 15 blue; 3 red, 5 blue +Game 90: 3 blue, 17 red, 11 green; 2 red, 2 blue, 7 green; 7 blue; 8 blue, 4 green, 10 red; 1 blue, 4 red +Game 91: 10 red, 9 blue, 8 green; 5 blue, 10 red, 2 green; 11 red, 17 green, 7 blue; 12 blue, 16 red, 18 green; 20 green, 5 blue, 15 red +Game 92: 1 green, 14 red, 1 blue; 2 blue, 6 green; 9 red, 6 green; 5 blue, 5 red, 2 green; 3 blue, 3 green, 10 red; 5 blue, 1 red +Game 93: 10 green, 1 red, 6 blue; 16 red, 5 blue, 2 green; 3 red, 7 green, 11 blue; 12 green, 5 blue, 4 red; 8 green, 7 blue, 10 red; 1 red, 5 blue +Game 94: 3 blue, 1 red, 3 green; 1 blue, 4 green, 4 red; 9 green +Game 95: 3 green, 5 blue, 9 red; 2 green, 9 red, 2 blue; 12 red, 9 green; 11 green, 9 red, 9 blue; 9 blue, 6 green, 10 red; 13 red, 2 blue, 5 green +Game 96: 2 red, 19 blue, 2 green; 10 blue, 1 red, 2 green; 9 blue, 1 red; 2 green, 3 blue; 1 green, 1 red, 11 blue +Game 97: 6 green, 7 blue, 5 red; 7 green, 1 red, 11 blue; 6 green, 6 red, 5 blue; 2 red, 9 blue, 1 green +Game 98: 5 green, 8 red, 15 blue; 16 green, 9 blue, 8 red; 5 blue, 3 red, 2 green; 13 blue, 12 green, 4 red; 2 red, 15 green, 3 blue; 1 green, 11 blue, 2 red +Game 99: 1 green, 7 blue, 6 red; 16 blue, 9 red; 1 green, 17 red, 12 blue; 15 red, 7 blue; 8 blue, 14 red +Game 100: 5 blue, 11 red, 6 green; 11 red, 2 blue, 5 green; 6 blue, 6 green; 2 blue, 6 red, 15 green; 7 red, 4 blue, 7 green \ No newline at end of file diff --git a/2023/2/part1.py b/2023/2/part1.py new file mode 100644 index 0000000..d2cbfae --- /dev/null +++ b/2023/2/part1.py @@ -0,0 +1,13 @@ +limits = { + "red": 12, + "green": 13, + "blue": 14 +} + +print(sum([ + game["id"] for game in map(lambda game: { + "id": int(game.split(" ")[1][0:-1]), + "rounds": [[(int(type.strip().split(" ")[0]), type.strip().split(" ")[1]) for type in round.split(", ")] for round in game.split(":")[1].split(";")] + }, open("./input2")) + if all(type[0] <= limits[type[1]] for round in game["rounds"] for type in round) +])) \ No newline at end of file diff --git a/2023/2/part2.py b/2023/2/part2.py new file mode 100644 index 0000000..14acf41 --- /dev/null +++ b/2023/2/part2.py @@ -0,0 +1,16 @@ +import math +limits = { + "red": 12, + "green": 13, + "blue": 14 +} + +print(sum([ + math.prod([ + max([type[0] for round in game["rounds"] for type in round if type[1] == key]) for key in limits.keys() + ]) + for game in map(lambda game: { + "id": int(game.split(" ")[1][0:-1]), + "rounds": [[(int(type.strip().split(" ")[0]), type.strip().split(" ")[1]) for type in round.split(", ")] for round in game.split(":")[1].split(";")] + }, open("./input2")) +])) \ No newline at end of file