diff --git a/2023/day12/Cargo.toml b/2023/day12/Cargo.toml new file mode 100644 index 0000000..724f2d9 --- /dev/null +++ b/2023/day12/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "day12" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +nom.workspace = true +helper.workspace = true +divan.workspace = true + +[[bench]] +name = "benches" +harness = false diff --git a/2023/day12/benches/benches.rs b/2023/day12/benches/benches.rs new file mode 100644 index 0000000..282bdef --- /dev/null +++ b/2023/day12/benches/benches.rs @@ -0,0 +1,3 @@ +fn main() { + day12::bench(); +} diff --git a/2023/day12/input.txt b/2023/day12/input.txt new file mode 100644 index 0000000..5eeff1b --- /dev/null +++ b/2023/day12/input.txt @@ -0,0 +1,1000 @@ +.#??..#??.?. 3,1,1,1 +???.##??#??????#???# 1,13,1 +.??#.?#??#????#?? 2,4,1,1,1 +???#??#.???#.?#??#?# 4,2,1,2,1,4 +????#?##???#.??.? 2,2,6,1 +.?????#???.###.##? 7,3,2 +.###?..#??????#???? 4,8,1 +??????????????? 1,1,1,2,1 +???.????????#? 1,3,1,1 +???.#..?#.?#?#??#?. 2,1,1,5,1 +.?..??#.????. 1,3,1,2 +.#?.??#?????##.# 1,2,1,3,1 +?###????.#?? 5,1,2 +?#??.????? 2,4 +?.#????#?????#??#?? 1,6,1,4,1 +#????????#?#?? 1,7,1,1 +?#??.?????? 3,1,1 +?..??#?###?? 1,6 +???.?.??#??##?? 1,1,1,5,1 +#???#.?????? 2,1,3,1 +?###??.??.?#???..? 4,1,2,1,1,1 +?.#???#?.?? 2,1,1 +#??##????##??????#? 7,5,2 +????#????????????# 1,6,1,1,2 +#?.?.##???? 1,1,5 +.?????.?#???????? 1,2,2,2,1 +#??.???#?.????? 2,5,1,1 +?????????.#???. 6,2 +?????????? 1,1,4 +?#??#??#?## 1,7 +????#?##???#? 1,6,1,1 +??#??#.???#?????? 1,1,1,7,1 +?????##?.?#??. 1,2,4 +???##????###????. 4,7 +?.?.?.?#???? 1,1,6 +???..??.????.###??. 2,2,2,5 +????##??#????? 1,7,1,1 +???..????#??? 2,6 +.??.????????. 1,2 +?.#?.????? 1,2 +??????.#???#? 2,5 +?????#.###???#.???# 6,7,1,1 +##.????##..#??#?. 2,6,1,1 +?????.??.?????????. 1,6 +??????..#?# 4,3 +#??????#??..?#? 10,2 +?.?????.?#??? 1,2 +???#??????.. 2,4 +.#?#???####??.?#?##? 12,5 +?.?????##??? 3,4 +?###?###????????# 10,3 +.?????????#? 1,5 +#?##????#???? 1,2,2,1 +.??????.??#???. 1,2,1,1,1 +??#.?#.????# 1,2,1,1 +???????.?#??????.?? 2,1,1,8,1 +???#??.?#???? 5,2,2 +?#??????###???. 2,8 +.??????#???????#? 1,12 +??..???#?#??? 1,6 +?.??????.. 1,1,3 +??#??.?#??#. 1,1,1,1 +?#?????.??????. 1,1,6 +.#?#?????#?#???#?.?? 5,9 +???#???#.#?##????? 5,1,7,1 +?#.??#??#?..?? 1,5,1 +#???#????#?.? 1,1,6,1 +????????.#? 4,1 +????#?#?#??.??.?? 8,1 +???#?????#?#?..#? 4,1,4,1 +??.??????#??.?#??#. 1,3,1,1 +.????????????? 1,2,2,1 +#.?#?#?#?.??? 1,6,1 +?#??#??..?#?? 3,2,3 +..#?.?#??#?# 2,6 +???#?.?..???## 3,1,2 +?????.?#?.???## 3,3,3 +??.?????..????? 3,5 +?.?????##? 1,1,2 +?.??#.#????#???.. 1,3,1,1,4 +??#??#?#?##????.# 3,3,6,1 +?.?.?.?####???.#. 1,8,1 +?##?????#?.?#.. 3,1,1,2,1 +???#???????.#. 2,4,1 +????.??.?#???? 1,3 +.?#?#?#??????##??? 2,11,2 +??.?#?.#?. 2,2,2 +????#...?#???# 4,5 +.??..???#??#?#? 2,1,1,3 +????#.?????? 3,6 +????.?????? 1,1,2 +????#?????.?# 1,2,2,2 +.?#?????.??.? 3,1,1,1 +???#??.?#.??. 1,3,2,2 +?##???????#???????# 2,9,1 +?##?????????.?? 8,1 +.#???????.??#???? 1,4,4 +.?#?.#??.? 1,1,1 +??.?#??????#? 4,3 +??#?#??#??.?? 3,2,1 +.#?.???##? 1,5 +?????.#?.???#? 2,1,1,4 +##????#??? 4,1,1 +?????????# 1,2,3 +??#?#?????##? 4,3 +?#.???##?#????#?##. 1,12 +#.?##???#???..??.?? 1,6,1,2,1 +?#????#??#.#?.##?# 5,1,1,1,4 +?#????#.#??#..? 1,3,1,1,1 +??###?.?.????. 5,2 +.????????#.#? 5,2,1 +.?.#.???..??#.?? 1,1,1,3,1 +#????????.??????. 4,4,2,1,1 +?.??????#? 3,3 +...?#.#.???##? 2,1,1,2 +??????????#.???.?#?? 7,1,1,1 +.????##?#??.???#???? 7,5 +??.#?.???? 1,2,2 +?.#??#??#?? 1,4,2 +????#?????? 1,4,2 +??.???????? 1,1,2 +??#????????#??#???? 3,3,7 +?????????##?.??#?. 1,1,2,1,3,2 +??#????????????.??? 2,11 +??#?.?#???#?##????. 4,3,4,1 +????.???????.?? 1,3 +????#.##?? 1,1,4 +#?????#?????.##?## 2,7,5 +#??.??..?#?#.? 2,1,4 +.??.??.?.?????##? 1,1,1,4 +??.???????#??? 1,7,1 +.#.??.?##???#.? 1,1,3,2,1 +#??.??##??.?#?.#?#?? 3,4,1,4 +???..?????????.# 2,1,3,1,1 +??#.?????#?##.?#.# 2,6,2,1,1 +?#?.?.#??#?? 1,6 +?###????#?.? 6,2 +?.?????????????.?? 1,1,1,1,4,1 +????.?#?##??#??. 1,1,5,2 +???????.????# 1,1,1,3 +##???.????#???# 2,1,1,1,5 +.#?##???####?.??#.?? 4,5,2 +????????#?#?.?#?? 1,1,3,1,3 +?.?????#?. 2,2 +?#???????????#.????? 7,2,1,1,1 +????????#..##. 1,2,2,2 +#?#?##?#??. 3,5 +???#????###????????. 17,1 +.????#???## 1,3,4 +??####??#??#?#?#?#?? 6,6,4 +??????#????.?.?? 1,3,1,1,1 +..?##?.?.?. 3,1 +.???####?????#? 8,1 +.???????#?..??.?# 1,3,1,2,1 +??.?#?????? 1,2,2 +??#???#..?#?????#??? 4,1,5,1,2 +??#?...#?? 4,1 +??????.#?#?##??.?? 2,7 +.???????##???. 1,9 +?..#.????#??#???#?? 1,3,9 +?#??????????#???.#?? 4,3,1,1,3 +.?????#???.??#?.?. 4,1 +??#.?##?#??##??#?#? 1,1,12,1 +?##??#??##???#.?.. 2,9 +#??????#??? 3,4 +##???.?#..#.?# 5,2,1,2 +???.?.???# 2,1,3 +?.?????.?? 2,2 +???.?????#?.?????? 1,2,2 +.#????#????.? 1,6 +????.#.?#??????#???? 1,1,1,1,2,7 +?.???.#.??##???#?? 1,1,1,1,8 +??????.?#? 4,2 +#??..?????#? 2,1,2,1 +?##.#.????##?# 2,1,2,4 +????????#???. 9,1 +??..????.? 1,4 +????#???#?.? 9,1 +#???.??????? 3,1,2,1 +.??????.?##??#. 6,3,1 +#.?.?#????#??#? 1,2,1,2,2 +##??##?.??? 6,1 +?????.????#???? 1,1,6 +#??.????????????#?#. 2,1,1,4,3 +???#??..?????#?## 5,3,2 +?##??????.??.? 4,4,1 +???#?????#?.? 2,1,3 +.?#?#????#?#?#? 5,6 +?..?#??###???? 1,7 +??#.???##.#? 2,4,1 +#??????#.?##?#?##??? 1,2,3,8,1 +?.?????????#?.? 2,6 +??.????##??? 1,3,2,2 +?#?#??#???#?#??? 10,4 +#.?.???#.#??#?? 1,1,1,1,6 +??##??.??? 3,1 +?????.??#..?.#? 1,1,3,1,2 +####???#????? 8,1,1 +?###???#?.. 4,1,1 +????.?????#?.???? 1,1,1,5,2 +#????#.??? 4,1,1 +??#??????.??#?. 7,1,1 +??#?????##??? 1,8 +..?#.?#???????. 2,2,2,1 +??.???#???.? 1,1,2,1 +.?.#?.?.??? 2,1,1 +????##??.????##?##?? 5,9 +?#???????..?? 2,3,2 +?#???????.??#????#?? 1,1,1,1,8 +#.?????#?.? 1,2,1 +#?.??????????????? 1,1,1,4,1,1 +??.#???#????#? 1,2,4,3 +.#???.???.#???#.? 4,1,1,2,1 +??????#???#?# 1,2,1,1 +????##??###??????.?? 1,8,4,1 +??#?????#?????????? 9,1,3 +.##???.???????? 2,1,1,1 +?#.???.??#????# 2,1,1,7 +.?..?..??? 1,1,2 +???.????.??#?? 3,2 +.?#.???#????????? 2,6 +????.?#?????????# 1,6,1,1,1 +???#?.?#???????? 1,2,4,2,1 +??##???#??#? 1,2,3,2 +#?.?.#.???? 1,1,3 +?#??#.?????? 1,2,4 +??????.##?????.? 1,4,1 +#????.???.#.???????. 1,1,3,1,3,1 +.#?##?..?##?.??.?? 4,2 +.#?###??#???#?? 9,3 +#??.##?.?.?#????#. 3,3,1,3,1,1 +?????##????? 3,2,1 +??#??????#????. 3,7 +????#.?#?? 1,1,1 +.??.#?##?.?? 1,5 +?#??.#..?????#??#??? 2,1,1,1,6,1 +?#?.??#???#??? 1,3,3 +????.?#.?????????? 4,1,1,1,1,1 +?.#.??????.?.##. 1,1,6,1,2 +????????#???#???? 1,5,3,1 +.?.?#??.?#?? 1,3,2 +??????????#??####?? 1,1,4,8 +?#???..????# 1,1,4 +.??###?.#..#???.?.? 5,1,1 +??.?.?????.???????.. 1,3,4 +..??????.???. 4,1 +#????????####??????# 1,11,2 +?#?.?.????? 1,1,2 +.?.?#??###?????.?#?? 1,2,7,1,1,1 +???#?.#???#????..? 1,3,2,6,1 +?..???????.? 1,1,4,1 +.??????.#?????????? 1,1,1,1,1,4 +?.?#??#?#???? 1,5 +???.????#????#### 1,1,11 +.??#.?????#??#??? 1,1,2,6,1 +?#.?????.#?? 2,1,2,3 +???.???#.#. 2,3,1 +?????.????.# 3,1,1 +.?????..?????# 4,1,2 +.??##??#?#?????#. 6,1,3 +??#?#???.??????#### 5,1,7 +???#??#??#??.? 1,1,6 +??????.???? 1,1,3 +???###?###?.#??#? 1,9,2,1 +##??.###..??? 4,3,1 +??.??.?????#? 1,1,4 +?#????????? 2,1,2 +#?.?????.#?.??#?. 1,2,2,1,2 +?#???..#????????#? 4,11 +?????????####?? 1,1,1,5 +??.?????.?#??????. 3,3,2 +????.?#?#????#??.?? 2,11 +##.#.?#.???.?.? 2,1,2,1,1 +??.??????.????? 2,2,1,1,3 +#?#???.#??#? 1,2,5 +??#?.????? 3,2,2 +??.???#??. 1,2 +????#??#?. 1,1,1 +#?.???.????? 1,1,1,5 +???????.#?#??#?#??? 2,1,1,1,1,4 +??#????##.? 5,2 +??#???#?..#???. 6,1,1 +?.#?????#?.. 1,3 +.??.??#????..???#? 2,5 +?#?#????#?????#? 3,6,1 +?###????.????##. 4,1,3 +?.???????# 1,2,1 +.??.??????#?..?## 1,6,2 +#???#??#????..???.?? 9,1,3 +#.???????????.???? 1,1,1,3,1,1 +..??##??????##????# 3,11 +?????.????????.?? 4,2,2,1 +#..??.?#?? 1,1,2 +????.???##???.#???? 1,1,1,6,1,2 +??#?#??#??.???????# 1,8,2,1,1 +??#.???#.?? 2,1 +???#?#?.#????????##? 3,2,8 +???#?.????#????? 4,6,2 +??.??..????? 1,2,1,1 +?.??#?#?????. 7,1 +?.????#??#??#?#? 2,7 +.?????????????#???? 3,1,4,1,1 +????.????.? 1,3 +??#..?????? 3,1,1 +.?#...??????. 2,1,3 +?????????????# 2,1,8 +?????????? 1,1,5 +??#?##??#?#?#?????? 6,2,1,1,1,1 +.???#?????#. 4,1,1 +?#.???#????###?#? 1,1,3,6 +????#?#?#???.?.#?? 1,4,1,1,1,1 +?#???###.??#?##? 2,1,3,6 +?????????.#? 6,1 +?????#???#????..# 4,1,4,2,1 +.?.????.?????????? 1,2,7 +#???????????? 1,1,2,5 +???????????#.??.? 5,4 +???##?#?#####???? 13,1 +??.?..???.?? 1,1 +???#?#?????? 8,1 +?.??#?.#??? 2,3 +#.?.??..#? 1,1,2 +????????.??#???? 2,1,1,1,4 +??#.??????????????? 1,3 +.??##?.??.???##??#?. 4,8 +?.???#????..???? 4,1 +?#??????#?#. 1,3,1,1 +#??####????.??? 11,2 +.?#??????????????? 2,3,6 +?#???#?#????#?.? 8,1,2 +??.????.?.??#?#? 2,1,1,1,5 +???#??.????#.. 4,2,2 +???.????????. 3,1,2,1 +#?#??.??#.????? 1,2,3,1,3 +????#.???#?. 1,1,1,5 +?????#???.?????. 8,2 +??##??##??##??##? 11,4 +??#.????#?? 2,5 +??????????? 2,3 +?????.#..? 1,1,1 +.???#????#?????? 10,1 +#???#?#???#????#???? 1,15,1 +??????????##? 1,1,1,5 +???.??##???.#..??#. 4,1,1 +.?????.??##.? 1,1,1,4 +??????##???..???#?? 3,5,1,2,1 +.?#?#????.?.#?. 6,1,1,1 +?????#?#?.#?? 1,4,1 +???.??##?.?????? 3,5,1,1,1 +?.????.????? 3,2,1 +..??.?..#??##????#? 2,10 +???..?????#?.??????? 1,2,5 +?#???????????#?.? 9,2 +..?##????##..# 2,1,2,1 +???#??????#?.# 9,1,1 +#?#???.??? 5,2 +???..???.?.??????. 1,2,3,1 +.#???.?.#??#?..?. 3,5 +?#?#??###?. 4,4 +????.?#???#? 2,3,2 +?#?.#?.?..#? 3,1,1,1 +???.??????.#??? 2,4,3 +.##??????##?#????.#? 10,2,2 +..??##??..??. 4,1 +#.##????....##.??? 1,2,3,2,3 +?.???#.?#.????? 2,2,4 +???#???.??###? 3,6 +?#..????..?##??.? 2,3,4 +??#.???????????. 1,1,4,2,1 +.##?????#???##?.???? 5,7,1 +??.?????#???#?#?? 2,1,1,9 +#?.??.?#.? 1,1,1 +???..??????#?? 1,2,4 +.#?#?#????.??#?.##?? 8,1,3 +??????????.?? 6,1 +?#????.?#.#??#?#.. 4,2,6 +.????????.??.?? 4,1 +???.#?#???????#... 6,1 +.????.????? 1,5 +?????????#. 1,5 +.?..??##?.##?. 3,3 +??.#?#?#?#????#???? 1,1,3,7,1 +..??#?#???#??. 5,3 +?..##????????? 1,5,1,1 +?#?????#?? 1,4 +#.???#??????#?. 1,4,5 +?????##????.?.?? 1,8,1 +???###?#??.??.?# 1,7,1,2 +?#.??#??#????? 1,5 +?#.???#????.???#?? 2,1,3,1,3 +??#?.???##.??.????.? 4,2,3,1 +??.??????#????#? 1,8 +?#???.?????#?? 3,2,2 +.#???????? 2,2 +??.##.????????????? 2,2,3,1 +#???????#?. 5,1 +##.??.#?.??#?? 2,1,2,2 +??????##??. 1,4 +??.??##????? 1,7,1 +???.?#??#??? 1,5 +?#???.?????##?#?#?.# 3,3,2,3,1 +?#?.????#? 2,1,1 +.?#?#??.??#???? 4,6 +?#..?######???? 1,10 +??##??????? 2,5 +???.????##..?..????? 2,2 +??...##.????? 2,2,1,1 +?#????#..#????#???? 6,10 +.?##?????#??# 2,7 +?????????#??#?#??#?? 2,10 +.??##????#??.???.#?? 11,1,1,1 +?#???.????# 2,5 +???#?.??..???##???.? 5,1,2,2,2 +???.??????????#? 1,1,1,4,2 +????###????.??? 8,2 +???.?#.??#??.??????. 1,3,2 +??#???.#????#?? 2,2,3 +#?#???#??#????.# 3,9,1 +.??#????????#.?? 1,1,1,4,1 +??#.????????#???#??? 1,3,1,3,1,1 +??.?#??##?#???#??## 1,15 +?????.?????#???#.??? 5,8,3 +.?##????..?#?. 6,2 +#????.??##????.# 1,1,6,1 +?##???#??.??#. 3,4,1,1 +???#.???#?.??????#.? 3,4,1,1,3 +????????.# 7,1 +?#???###?? 1,4,1 +??.??#????#? 1,1,7 +?#??????#..??.. 2,5,2 +.??.?#????#?#.. 1,9 +???..???#.??? 2,4 +#??##??#.??? 1,2,2,2 +..???.????? 2,1,2 +???????.????##.##.? 4,1,4,2 +??.??.?#.. 1,2,1 +??#??#????##? 1,1,6 +???##?###???# 1,8,1 +?#????????.?.#?? 3,1,1,3 +.?#?#??#?#.??.?? 9,1 +.?...???.????# 1,1,5 +...#?.#???#?#????? 1,8 +#...?????#??#?#???#? 1,1,1,1,8 +.??.??#?????????? 1,12 +#????.?###?##???. 5,7,1 +?#?.?#??????? 2,6 +?#?#??????? 6,1 +..???..?#??????.#? 3,3,2,1 +????.???#?? 1,2,2 +???##?##???#????? 5,3 +.???..#?#? 1,1,1 +?????#???#? 5,4 +#?.?##?#???#??#??.# 2,2,1,7,1 +?#?????.??#??#.?. 6,4 +???#.???.????.?? 3,2,2,1,2 +.??#?#??#??? 1,1,1,3 +?.??#.?.??? 3,2 +.?.#??????#????##?## 1,1,2,1,1,7 +.????#???#???? 2,6,3 +??##????????## 2,1,1,3 +.????..??. 3,1 +???#.?????###?.??#?? 2,1,1,3,4 +?..???..?.????????#? 1,2,1,7,2 +????????#?#? 1,5,3 +.????????????? 6,2 +???????##?#????.?#?? 1,5,2,1,1,1 +??#?#.????#?? 5,2,1,1 +??..#?????????. 1,4 +??#.#???#???#? 2,7,2 +.?.?.?????##?.?? 1,1,1,4,1 +.?#???.?#. 4,1 +??????#?.#??.?? 2,2,1,1,1 +.??#?.?#??? 3,2,1 +?##????##.??.??? 8,1,1 +???#..??.##??????#? 2,1,1,9 +.#???#??#? 2,5 +???#.???#???##???? 2,1,5,2,1 +?..#?????#????. 1,4 +.??????#??. 1,1,1 +?.??.?????#??#? 1,1,2,4 +???.?#.#??????.??? 3,1,2,2,1,2 +?????##?#??#????#.?? 1,13 +..#????????.?? 2,4 +?#??.?#?.?#??. 2,2,2 +???##.????##? 4,7 +?##?#?###?#.???.#??? 11,2,2 +?.???????#? 1,5 +??.?.???## 1,1,2 +..#??#?#??##???#???# 1,4,9,1 +?#??#????????## 3,1,1,5 +.#?.??#????????# 1,8,1 +#??????#???#?. 1,1,3,1 +.?.???.?#??## 1,6 +#?#?????#?#??#?..??? 1,1,3,1,3,1 +##??#???.?#?? 7,1 +..??#????.??##?#???. 5,8 +??..#??????? 1,1,1,2 +?????##?#.? 6,1,1 +???#???#?#?.# 4,1,1,1 +?.#???#.?#?#??.? 3,1,4 +?.?#??.???.#..? 2,1,1,1,1 +???#?#????.#????#? 1,2,5,1,1,1 +.#.??##??#?## 1,9 +???.????.???.? 4,3 +.???#???##.?#? 1,3,2,2 +...#??#?#?# 1,5 +???#?#???.. 1,3 +#?#???#??###. 1,5,4 +#?????????##?????## 1,1,1,1,6,3 +?.?#????#????###.? 8,3 +.??#???????????? 6,1,3 +.?...#.??#.#. 1,1,1,1 +.#????????? 4,2 +?????????##?.????? 8,3 +?????#?.?.???.??? 2,1,3,2 +.???#????#### 1,1,1,4 +.?.#??#??##?##???.?? 1,1,9,1,2 +?..#???#?#?.???.??. 1,8,1,1 +??.??.????????? 1,1,4,1,1 +.???#.#??.#.? 4,3,1 +???#???.??? 1,2,1 +?#???????..??#?#???? 5,7 +??#???????#?#????#? 1,6,5,3 +#???????????#.###? 1,2,1,1,2,4 +?#???#?.#??.?# 6,1,2 +#??????????.#?##?? 6,2,4 +???????.?#????? 2,1,1,2,4 +??#?##?#..?????#. 2,4,6 +??????.??#??#? 3,4 +.??...?????.? 1,2 +??#????##????????# 1,1,8,1,1 +.?#?????.? 1,1 +???#?#????.???? 4,1,1 +?.???.##?????# 1,8 +??.#??#.???? 1,4,3 +?.?#?????#. 1,5,1 +.???.?.????? 3,1,2,1 +???#?.#????..?#? 3,1,3,2 +??????#??#?### 1,9 +??????#??#???.#? 1,11,1 +?#????#?#?#?.? 3,2,4 +??#.????#??..?????.? 1,1,4,1,2,1 +?.???.???#??###?.? 1,1,2,7 +????..#?#???.?.#? 3,5,1,2 +???.?#####.##???? 1,1,5,2,2 +?#???##??#???? 1,1,8 +???.?##?????.?#?#??? 6,3 +????#..????.#?#.?#?? 4,4,1,1,1 +?#?.#???.????????? 3,1,1,7,1 +#??#??#?#..?????? 1,6,1,3 +???#???.?#? 1,3,1 +?#.?.?#???? 1,1,2 +.#???#?.?.????#.??? 1,1,2,1,3,1 +??.??####?.##???. 4,4 +?#?.??????? 1,3 +.???#?#?###????.## 11,1,2 +?#???###????? 2,3,1,1 +.#?#??##??#?.?????? 1,5,2,2,3 +.##?#??#??????#??? 8,3 +##?#?#????? 4,1,3 +??.????.??#?#?#?#??? 1,9 +????.#?.#??##.?#..#? 2,1,1,5,1,1 +??.#?#???###. 3,5 +#????#?#???.?? 3,6,2 +.#??..??#. 3,1,1 +???????.?#? 1,4,1 +#???????#???#. 1,3,1,5 +??###??#???? 7,1 +.??#?###??.?#?##?? 9,1,3 +#??#???#?????###??# 4,1,1,1,5,1 +?#.?#.??#????#. 1,1,3,1 +.##.????.??#?. 2,1,4 +##.??#?????????..## 2,8,1,2 +?.??#?.????. 2,3 +?#????##?#.???##?? 2,5,1,2 +#????#??#???#.# 1,10,1 +???????..? 1,1,1 +.??#??#??#?? 4,1,2,1 +?????#???..?? 2,1 +.#?..???###. 1,6 +???#?.??.???. 3,1,1 +?#????.#?.??.??.#. 2,2,2,2,1 +?.??#.??????? 2,4 +??#??????? 2,1,2 +???.?##?.??????? 2,2,1,1,1 +??.??#??#? 1,5 +#????????#?.##? 1,1,2,1,2 +#??.?.?#?????????? 1,1,1,4,1,1 +???.?#?.?#?? 3,1,1 +..??#??..?#?.??..?.? 1,3,1,1,1,1 +??#??#??##??#???.??? 6,5,3 +??????##????????#.# 2,7,2,1,1 +?#?.????.???#?? 2,2,4 +?#?#??????#????#?? 1,6,1,1,2 +???.?????? 1,2,1 +?????????###?#???? 1,9,5 +??????##?#????# 1,5,1,4 +?.?#?##?...#?? 5,1,1 +.???#...?????#?? 2,1,7 +???.??.?????.??? 3,1,2,1,1 +.?#??????. 1,3 +??????????#. 5,2 +????#???##????#??#? 2,2,3,8 +???#.????????##?# 1,1,1,5,1 +??????#?##?? 2,7 +?.?##???#??## 1,3,2,2 +?.????.?#.. 1,2 +?#.????.????. 2,3,3 +.?##????????????. 3,1,2 +.???.??#?.???#?# 2,2,1,3 +?#?.?#??????????? 2,2,1,1,5 +????#???#??????###?? 2,3,1,1,6,1 +?#?##???#??#??. 4,2,3 +??????.?#??.?? 1,1,3,1 +.?????#####??###? 9,3 +.?.???#?#.????.?## 1,4,3,2 +???###.??????? 5,1,2 +??#??.???. 4,1 +.?.?.?##.??#? 1,3,2 +???..?#??#?. 2,6 +??.#??#????????.?? 1,5 +??#.??##.?? 1,3 +?#.?.?#?.?#####????. 2,1,2,7 +???.????#?#??? 2,9 +??????#?.# 1,1,1 +???????????????????# 1,2,1,2,3,1 +?.??.?????#??#??#?. 1,2,4,8 +??#??????#?#??? 3,2,1,4 +.????????.???????? 4,1,1,2,1 +??????##?????????.?? 14,1 +.????.???????? 1,7 +??..?????##?.??#?? 2,7,4 +?..#?..???? 2,3 +.?.???.#???#?#????. 1,1,8 +?????.?.????????? 1,1,8 +??.??.??.#??? 1,2,1,4 +???.?###???? 2,3,1 +?#?????#???.????. 1,5,2 +.????#??.?????#?. 4,4 +???..?#?????.?. 2,3,3 +?##?.??.?#?????#? 4,1,4,3 +?????..#????##?? 1,1,1,6 +?.??##???..?#?.???? 5,3 +.????????#??????.?? 1,10,1 +.#?.?????#??# 1,7 +?##?##???.???#. 6,1,1,1 +?#??.#.?????#?#?. 1,1,1,1,6 +?#?###??.#??##?? 7,5,1 +.??#??????#?.?#????? 10,5 +?#.#??????????#???# 2,2,1,3,3,1 +???????????? 2,1,1,4 +.#?????##??#???# 1,5,1,3 +??..?.??????.?????. 2,3 +?#??.??????.#?#????? 2,3,3,1 +???#.????##???? 1,8 +???????#???#?#??. 1,1,8,1,1 +??????.??? 5,1 +?.?..??.#??#?#?? 1,1,1,7 +.#??##??#??? 6,1,1 +.?#.?...?? 2,1,1 +??#?##?#?????#???? 14,1 +..?#?.?#.????#?? 2,2,4 +.???.????.????#?? 2,1,1,1,3 +#.???????#??##???# 1,1,1,9,1 +??.???#?.. 2,5 +?#???#?.??????.???? 3,1,1,1,1,2 +.??#.???.#?#? 1,1,2,3 +.?#?.#???#. 2,1,1 +.?##?##?.?#..???.#?? 7,2,3,1,1 +?#????#??#??#.#.?. 1,9,1,1 +??.????????????? 2,1,1,2,4 +?.????????? 1,1,6 +????.#?????#??? 1,1,1,2,2 +.??#??.#??.??.?? 1,1,1,2,2 +#????????#??# 1,1,3,1 +???.?#??.##?? 3,3 +?##?#####???. 8,2 +????????????##???.?# 10,2,2,2 +??.?#.??????.? 1,1,1 +?????#.##???.?#??? 3,2,5,3 +???.?#????#?.? 1,8 +?.##?#???.#??.?.? 6,1,1 +???.??#?#???##.?.?? 2,4,4,1 +.#??##???#???? 6,4 +??....???. 1,3 +#??#??.?????? 5,1,2 +??????.?#.??..??? 1,1,2,1,2 +#??.????????.#?. 3,1,1,4,2 +#?.??.????? 1,1,4 +?##?.?#.?? 2,1 +?.?.##????.?. 1,1,6,1 +?????????? 1,1,1 +#???.?#?#????????..? 4,9,1,1 +????#???##??.? 6,2 +?##?????.#???# 3,2,5 +???#???#.? 2,1,1 +?.??????##.???.. 3,2 +?#?.?????? 1,1,2 +???.?#?##???#???? 1,6,1,1 +#?#.#.#..??.# 3,1,1,1 +.??????????? 5,4 +??#.?????##??? 3,2,2 +????#?#???##???.??? 14,3 +#.##????#?.#??.???? 1,7,1,2 +???#????#??????? 4,6,2 +?.##?#?.?????##? 2,1,7 +??.????#?#?????.? 1,1,4,3 +#.????.?#? 1,1,3 +.?#????##???.???? 1,7,2 +.#.?????#??##?# 1,11 +??????#??.#? 1,1,1,2 +??..#???.?? 2,1,1 +??###??#???????.???# 12,1,3 +.?#??#.#??????#??#?? 4,1,1,3,1,1 +??#??.????? 3,1,1 +.?..?????#????#?##?? 2,10 +?????????##??. 1,1,5 +?????#?#??#?????? 4,1,2,3 +#????.???? 1,3,3 +?.??#?????#?? 1,9 +?...#.??##???? 1,1,4 +?..?#.#????????.? 2,1,6,1 +#?#??#?.??????#??# 1,1,2,4,3,1 +????#?????.?.?? 1,5,1,1,1 +????.??#?.#?.?? 4,1,1,2,1 +?????????.?###? 7,4 +.#?#?#.?.?.????? 3,1,1,1,2 +???##.?.##? 2,2 +?#.?#.?#???##? 1,1,2,3 +?.????#???? 1,2,5 +?.?##.??#???.???? 1,3,5,1,1 +???..??##?? 2,4,1 +.????.????. 2,4 +????####..#???.??? 7,3,3 +???#???.##?.??#?#? 1,1,1,3,5 +??#??##?.? 1,3 +??#??????? 2,2 +#??..??????? 2,4 +?.??.?.???#??#?##?#? 1,1,1,10 +????.?#?.?#??#? 2,3,5 +?????????????#.?? 5,1,1,4,1 +?#?..?#.?.?? 2,2,2 +..#.?????? 1,4 +?.??##??????..??? 6,2 +??????#???? 3,1,1 +.?????????#???# 10,1,1 +????#?.#.?.???? 1,2,1,1,1 +?.#??.????#. 1,2,3,1 +??.#????.??#?????#?? 1,1,1,9 +???.????#..???. 1,1,5,1 +#???????#. 1,2,1 +??????#???#?##?#? 1,1,1,7 +??.?###???.?? 1,4,1,2 +.??#?#?..???#.??### 3,1,4,4 +.?###???.??#... 6,3 +?#?.??????#?###?#?? 2,7,7 +?#??????.??????.. 7,1,1,1 +.??????.??.???#?.# 1,1,1,2,2,1 +???.??.#???? 1,1,1,1 +???#???#??.?????? 1,1,4,2,1 +#?#.??#?#???#??? 3,1,1,1,3 +?#????????.#..????? 4,1,1,1,4 +??..???.?.? 1,3,1 +.????...??#????#.?. 2,1,1 +?????#??????#???? 6,7 +?.??#?#???? 1,5,2 +?..??#.???? 3,2 +???##???##??#? 1,2,5 +?.????????.#??#?.? 1,8,1,1,1 +#??#????###?.???.? 5,6,1,1 +????#?#?#?#???.??# 13,2 +???#?#??#?? 3,4 +??..?#???#????..? 1,4 +??#..?.????.???? 1,1,3,1,1 +?#??..??.???????.? 3,1,2,2,1 +?????#???? 2,3,1 +????#?#???.?#.#?#??? 1,6,1,1,6 +#?##?#?#??????. 4,1,1,4 +#?#.???#??? 3,2 +.??.??.???#?#.?.? 1,3 +???#?????#?? 1,3,1,1 +.???????#? 4,2 +???#?????.?????.. 1,4,1,1,2 +???????????#?# 2,1,5 +?.???.??..????.?.. 2,2 +???.?????#?.????? 1,1,1,4,3 +??.??????#???.?? 2,1,1,4,1 +??#??.#.?.?##?#??? 4,1,1,7 +?#???#?.???#??.#??#? 6,3,4 +??#?.?????????. 4,2,2,2 +??#????...##? 5,2 +?#???##.??.???#?#. 6,1,5 +????????#???#??.? 3,10 +???.?#??.???##? 2,2,4 +?..?????## 1,6 +#??#.#?##???#?? 1,2,1,3,3 +?##.????##?.?##. 3,3,3,3 +???.???..#??..?.?#? 2,1,1,1,1,2 +?#?##????#? 1,8 +.??#??#?##?## 1,1,8 +.#??..????..#.????? 1,1,1,1,1,5 +???????.?#??# 5,3,1 +#???#...?? 5,1 +.???###??????? 5,1 +?#?.?#?..#?#?#???? 1,2,1,1,2,1 +#??#???.?????.??? 6,3,1,1,1 +????#??.?. 1,2,1 +????.??#.?.???#??? 1,1,2,1,1,3 +#.???????##?????? 1,10,1,1 +?.??.???##???#.? 2,8 +?.#???.??#?? 3,2,1 +?#?.?#???. 2,4 +.???.#?..?#???##???? 1,2,2,7 +?#???????? 3,4 +?#???.?#?? 1,2,4 +?????#.??? 6,2 +??.???.?#? 1,2,2 +..#?????????#.?#?#?# 5,4,5 +#????#??#???? 2,1,4 +..??.???.???#??? 2,7 +??#??..??.???.?? 5,1,1,1 +.?#??#?#.?..#?#.? 7,3 +...?#?#?????#.?#? 2,7,2 +??..???.?????????.? 2,2,1,4 +???.?#???.? 1,3 +?#?#?.???##???# 3,5,2 +##?#.?##?.#? 4,3,2 +.?????##?# 1,5,1 +?.???#??#?#?? 1,7 +.????##??????.? 12,1 +???????.?.? 1,3 +?#.???##????..???#?. 2,6,1,4 +#???##?#..?????. 1,5,1,1 +#??##.???.????.? 1,3,1,1 +?.????#..??#??? 3,2 +.??????#??... 4,1 +.???#.?.??? 2,1 +?#??#??#?#????##?? 2,1,11 +.?#???..?.??.... 3,1,2 +???#??#??????#??? 1,2,2,3,4 +.###?????###.???? 11,4 +#?#?..#?#???#??????? 4,7,1,1 +????????????#?.. 6,3 +.#.??..????. 1,1,2,1 +?.#??#?#?#?#.?? 1,8,1 +.???#??##?????. 1,9 +#???????#? 2,1,3 +???#?#.?.?.???? 3,1,1,2 +.##???#??.??.#???# 8,5 +#?##??????????? 1,7,1 +??????????.??.?#? 7,1,1,3 +#????#????##?????? 13,1,1 +#??#????.?.?.?? 1,6,1,1 +?#??###???#? 1,8 +?????#..?? 2,3,1 +.??????.??????. 1,1,5 +???.?..???. 2,1 +???????#???##?#?? 3,2,5 +??????##??# 1,3,1 +#??..?#???. 3,5 +??#??#??#?#???#????? 15,1 +??.???.???###? 2,3 +?????????.???#. 2,5,3 +.???????..??#? 1,1,1,2 +????#?#.?.???.?? 6,1,1,1,1 +?.??????.?.## 1,4,1,2 +?#??#?#?.##??#?##??? 1,3,11 +????##???.. 1,2,1 +????.?.????#????#?#? 3,1,1,1,1,3 +???.?.????#??.? 1,6 +??##??????# 6,1,1 +??.?.????##?????. 2,1,2,2 +???...??????? 2,1 +.?????###???.????.. 9,1 +??.?#?.?.?##. 1,3 +??#???#.??.# 1,5,1 +??.????????? 1,5 +???#???.?.#??????.?# 6,1,1,3,1,2 +?????#.???##??.?. 1,1,1,7,1 +?.??#?#??#?..?#??. 1,4,2,2,1 +????????#????#??.?. 2,10 +????##???#???.???? 5,3,3 +#.#.?##??#?????#? 1,1,7,1,1 +#?????##??????? 1,1,6,1 +#.??#?.??..#.??#..?? 1,4,1,1,3,1 +#???#?#??#.?##? 1,5,1,2 +#.?##???#.?.??#. 1,6,1,1,1 +???.?.???? 1,1,1 +?#?#???.?? 4,1,1 +###?##?..???##?? 6,2 +?.#.?#??####???#?. 1,8,2 +#??.????#??? 1,1,3,2 +#?#??..#????#?? 1,1,1,1,3 +.???#?#???# 2,5,1 +?#?##???.???? 4,1,1 +?#?.???##??#??????? 2,8,1,1 +?????.???????.??##?? 2,1,6,3 +..????.#?#?? 2,4 +.?#???????#.??? 1,1,2,1,1 +??#?..#?#??..????? 2,4,4 +??.?.?..?? 2,1 +#??#???##??.??#? 5,5,2 +???#????.???? 5,1,1 +#???.??#?##?#.#..? 2,1,1,6,1,1 +.?#?##????????.? 1,3,2,1 +.#?#??.?.? 4,1 +??.???#?????????? 1,11 +.###????###????. 3,6,1 +??#????.?##? 4,3 +???.?###???# 1,8 +???.???.#???#?.? 1,1,5,1 +??##????????#?? 5,2,3 +#?#?#????#?##..#???? 1,1,9,1,2 +#??.##???.??? 1,2,1,1 +?..#?????. 1,3,1 +.???#?#??##????#??? 12,2 +#??????.??#? 7,3 +??#.?#?.#????#?.# 2,1,2,3,1 +?#?.?.???????? 2,7 +??.??#?#?.????????? 1,4,9 +.??.???##? 2,1,2 +.??????#.?.?????. 1,1,1,1 +???#.???#???#..? 1,1,8,1 +.????#???? 1,1,1 +?#.??.??????????#.? 1,1,2,5,1 +?.?.???.?. 1,1 +???.?.#???????#?#?#. 1,1,1,7,1,3 +??.?????#??## 1,1,1,2 +.????????? 3,2 +#?????????#????#. 6,4,2 +#??.?##???.??? 1,3,1,2 +??.???##?#? 4,2 +?#.?????.?.??#?.?. 1,2,1,1,4,1 +?????..??.?? 1,1,1,1 +#???#???#???? 2,1,5 +?.???..?????.?? 3,5 +??#..#?????????? 3,1,2,3 +#?????###???..?#? 1,1,4,1,1 +?##?#?.#?#? 5,4 +?##???#??..#??#? 9,1,1 +???#???##??????. 4,4 +??#???#??#.???#? 3,4,1,1,1 +?#?#??.?##?#??#?. 5,8 +?.???.?#???.????.. 1,1,5,3 +.???.?.?#??? 2,1,1,1 +###?.????.?????? 3,1,1,1,1 +????#??#???.?##???? 2,2,2,5 +???????#.?.?#? 1,4,1,1 +???????##?##?????#. 11,1,1 +.???#.?#?????### 1,2,1,1,5 +??????#????#..?? 8,1,1 +#?????#?..???.#? 8,2,1 +???#???##???? 1,3,2,2 +???????#????.??? 5,1,1,1 +?##..???#?? 3,5 +.??????#????.? 7,1 +?#?#?#???.??#??.?? 8,3 +?????##???#? 5,1 +??#?.??????#.?? 3,2,1,2,1 +.#?????.???..???..?. 5,2 +????#??????? 5,1 +?.?#??#?###?# 1,10 +????#?????.#??..? 5,3 +???#?#??.? 2,1,1 +.????.???#??? 3,1,3 +#?#?#????????. 1,1,1,6 +#.?##?#???##??#???? 1,5,2,1,1 +????.##??#???#??#? 1,9,2 +???#?#?#?#?.?# 8,2,1 +??#???#????#????#?.? 9,5,2 +#.????????#?. 1,1,1,2 +?????..????.???#?. 5,2,3 +????.??.?#.? 1,1,1,1 +???#??#?.??? 4,1 +???#???#?#??#?????? 1,1,4,2,1,1 +.?##??..?. 2,1 +?#####?????#??.??? 13,2 +???.#??#?#??#??. 1,1,7 +.???#?????#?#??.?#?# 12,3 +?...#...##. 1,2 +?.#????????.#?.?.?? 5,2,1,1,1 +?#???..#??? 3,1 +??.#?????????????#?? 1,1,6,1,1,1 +?.?..??#?..????? 1,1,4,1,3 +???.??.?#??.#.? 3,1,2,1,1 +?#?##??????#??? 1,2,3,3,1 +?#???.?.?#??.?#? 3,1,3,1 +##??.???.? 3,1 +.?.??????? 1,3 +?????#?#??.?????## 1,1,1,1,1,6 +..????.??..?? 1,2,1,1 +??#??.??#????? 4,4,1 +??.??.???#?? 1,3 +?????#?#???#? 1,1,3,1 +??.?..##???? 1,3 +.?.???.#?? 1,1,1 +?#????##??##???.#??# 4,2,6,1,1 +??.#?#?.???##...???? 1,4,4,3 +??.?#???.??? 4,1 +?#???#?.#???? 6,1,1 diff --git a/2023/day12/input_small.txt b/2023/day12/input_small.txt new file mode 100644 index 0000000..e69de29 diff --git a/2023/day12/src/lib.rs b/2023/day12/src/lib.rs new file mode 100644 index 0000000..bba5cf4 --- /dev/null +++ b/2023/day12/src/lib.rs @@ -0,0 +1,48 @@ +use helper::{Day, Variants}; + +pub fn main() { + helper::main::(include_str!("../input.txt")); +} + +struct Day12; + +helper::define_variants! { + day => crate::Day12; + part1 { + basic => crate::part1; + } + part2 { + basic => crate::part2; + } +} + +impl Day for Day12 { + fn part1() -> Variants { + part1_variants!(construct_variants) + } + + fn part2() -> Variants { + part2_variants!(construct_variants) + } +} + +fn part1(_input: &str) -> u64 { + 0 +} + +fn part2(_input: &str) -> u64 { + 0 +} + +helper::tests! { + day12 Day12; + part1 { + small => 0; + default => 0; + } + part2 { + small => 0; + default => 0; + } +} +helper::benchmarks! {} diff --git a/2023/day12/src/main.rs b/2023/day12/src/main.rs new file mode 100644 index 0000000..1a1d089 --- /dev/null +++ b/2023/day12/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + day12::main(); +}