From e69bf8e9ffa39863c53fe42953a6a9786373e93f Mon Sep 17 00:00:00 2001 From: Lea Date: Wed, 13 Dec 2023 09:50:27 +0100 Subject: [PATCH] stole code and now it works --- day_12/input copy.txt | 1000 ------------------------------------ day_12/input.txt | 1006 ++++++++++++++++++++++++++++++++++++- day_12/part_2/src/main.rs | 131 +++-- 3 files changed, 1063 insertions(+), 1074 deletions(-) delete mode 100644 day_12/input copy.txt diff --git a/day_12/input copy.txt b/day_12/input copy.txt deleted file mode 100644 index 4c0a08d..0000000 --- a/day_12/input copy.txt +++ /dev/null @@ -1,1000 +0,0 @@ -??????#??#?? 1,1,5,1 -?#?#??##?#? 2,5,1 -????????.?#???#??##? 2,1,2,1,1,6 -#???#?????.?#?. 2,1,2,1 -?##..?#?#?? 2,4 -..#??##????###????#? 6,8 -???#..?#?? 1,1,2 -.#????#?.??? 3,2 -.?#??##?.? 1,3 -????????#? 2,1,1 -.?##???#?##????.? 7,4,1 -?##??.?#.????? 5,1,4 -?????.#??#?? 1,1,1,1 -?#.???.???.##?#?. 1,1,1,1,5 -.#??.??.???.???. 1,1,2,1,2 -.?.????.??? 1,1,3 -?????#??????????# 6,1,6 -#?????#???? 1,8 -.???.??#?.#????#?.?? 1,1,1,7,1 -.??#????##??#.# 12,1 -?#????##.#.?? 2,4,1,2 -??.??#?#.#? 1,3,2 -??#?.#????#?#? 2,9 -#??#????#????? 4,3,1 -?##????.???? 3,2 -?##??#?.#??#??#??#.? 2,2,10 -??#?#??????#.#?#.? 11,3,1 -??##.???????#??????. 2,1,2,4,2 -????.?#.???#.????.? 1,1,1,4,1,1 -???????????#???.#?? 1,10,2,2 -#???#???????#???? 1,1,7,1 -??.??#?#???.??? 1,5,1,1 -?.?.?#..## 2,2 -??????.?#??#???.? 4,1,4 -???????##?? 3,2 -?????????#?.?#?# 8,1,1 -???????.#???.?#??. 1,1,2,2,1,3 -?#????????????#????? 2,12,2 -..?##??#???.???? 8,3 -#??.?.????#???????? 1,1,2,1,7 -????#?#?##???. 2,6 -??#????....#???? 1,5,2,2 -.?????#?????? 1,5,4 -????..???.???#??##?. 1,1,1,1,1,6 -?.??#?...??? 2,3 -#?#??????##?# 3,2,2,1 -#?##?????????? 10,1 -??#?#?#????#???#??? 13,2 -?#?.??#???#.?? 3,3,2,1 -??????#????????#?? 4,1,5,1 -#?????#.?. 3,2 -??#?#?##?.???? 1,7,1,1 -#?#??#?.##???.???#? 1,5,2,1,4 -?????#???#.#??# 1,1,5,2,1 -.?#?#...??#?#??#?# 1,1,6,3 -???#??#????#?#. 1,9,1 -#????#???.? 1,1,1 -?#?#??#??.#. 1,1,3,1 -..?.???#.????? 1,2,1,2 -.??#???#??????#.??.? 7,4 -.????????? 2,2 -?.??.???.?? 1,1,2 -???.?.???#..??. 1,4 -.?..?.????#???? 1,1,3,2 -??????##??#????.# 1,1,8,1,1 -.?#?.#??.??#?#???#? 3,1,1,9 -??###??#??????#?#?? 1,6,1,1,1,3 -?#??.??#?? 2,1,2 -.???#????#??? 4,1 -??.#?##??? 1,2,1 -?????.???.?#.##?? 4,2,2,2,1 -???#???????#.#???.?? 4,1,1,1,3,1 -?..????#??##?#? 1,8,1 -#???#?##??? 3,1,4 -??.???.?##.?..?#? 3,3,1,2 -????.??????#? 1,1,3,1 -?????#?#?##??. 4,6,1 -.?????????# 2,4 -??.?.?????#?#. 1,7 -.#?#??.??????????? 1,3,7,1 -????##?#?##?? 1,2,4 -??.??????#?#???. 1,2,5 -?#.?#??#????.?? 2,1,1,1,1 -???##?.?.???#..?#?#? 1,2,1,1,1,5 -.??.#??????#?#### 1,1,1,9 -?#?#?.???##????# 1,2,1,3,4 -##?#.#??#?? 4,5 -????..#??. 3,2 -??#????.??##??# 4,1,5 -??.???.#???????????? 2,1,6,1,3 -???#?.?.????#?????? 4,10 -#?????#?????. 1,1,1,5 -.?#??.??#???. 2,6 -?#.?????#??##???. 1,1,2,1,5 -.#?.???????##?.#.. 2,2,3,1 -??#??#??.?#????? 1,1,3,3,1 -#.????.???.??.????# 1,1,1,2,1,5 -??#??.???#?? 5,1,1,1 -?##?????????? 5,1 -??.??#??.?. 4,1 -.?.##????.?.? 1,5,1 -.#.?????????.?????? 1,7,1,2 -?##?..?????#??##?##? 3,12 -#?#?##?#?????#??#??? 1,9,1,1 -????#?##???#? 1,8 -??.?##?????????.? 1,11 -??#???#?#.? 2,2,1 -.????#???.???#?#? 1,5,5 -????.??.##??? 2,4 -?#???.???.#????#?? 1,1,1,1,1,4 -??######?#????????. 8,1,1,1 -????.?????? 2,3 -.???#????? 1,1,1 -??????#?#?#??# 10,1 -#?#????????? 1,6,1 -???.?.?##?#?.????. 1,6,2 -?.??????#.#.. 1,1,3,1 -???.?????#?.? 1,2,2,1 -#..???.?.#?? 1,3,1,3 -?#????.#?????#. 2,2,1,2,1 -..#?????????..??## 1,1,1,1,1,3 -??????????#??#? 1,12 -#?#?.?#??????. 4,1,2,1 -???#????#?#???..?# 9,4,1 -.??????#..?. 1,1,1,1 -?.??#????#? 5,1 -#?.?.??#?#.?? 1,1,3 -?#.????.?? 1,3 -#??#??##?#.?..?? 1,6,1,1,2 -.???#??????.?#?.? 5,1,1,1,1 -.??.?.????? 1,1,2 -..?##?????#????? 5,5 -?..?#??#?????.? 2,4 -???#.#????.# 3,2,1,1 -??.??#.?.???? 2,2 -????????##??.??.? 7,3,2,1 -.???#????????????? 10,2 -.?#??.???.???# 3,2,1,1 -?##???#.?? 2,2,2 -??.??#?.?? 1,4,1 -??#?#.??#? 1,3,3 -?#??????.?????#??.#? 2,2,1,1,4,1 -???????.???.#?.?? 7,2,2,1 -.????????#????###?# 1,4,1,3,1 -????????#??.?#?..#.? 2,6,2,1,1 -?#???.?????#?.????? 2,1,1,3,1,1 -???#??.??.. 4,1 -.????.?.??. 4,1,2 -?????????.#? 1,1,1 -?#??#?####??. 9,1 -???#??????#?.#?#???? 1,1,3,1,3,1 -?#?#???#??#?? 9,1 -????#???.?? 3,2 -..#??##???.#?. 1,4,2 -??.?????.?? 3,2 -?#?..???##??.? 1,7 -?????#??????#????? 13,1,1 -?#??#?##.?.?#???# 1,4,1,2,1 -??..??..???.?## 2,1,2,2 -??#??.???#????????? 1,1,1,1,8,1 -???.?..?#. 3,2 -??#??.#.??.#?????? 2,1,1,1,4 -##??..?#??? 4,3 -?#.?.????.##??#? 1,1,4,2,2 -?#???#?????##??? 2,3,5 -??#?????.#?##??? 6,1,5 -??#?..??????? 3,3,1 -?.?.?????###???. 1,10 -#????###???#???.?#? 1,6,3,1 -?.?#?.???##???##??. 2,10 -???.?.#??# 1,2,1 -..#????##?#??????? 1,9,1 -#?#.????## 1,1,4 -???.??#?.#.. 1,1,1,1 -?#?.#.?#.?????#? 1,1,1,2,3 -?#???.?#????#? 1,1,1,4 -???##?????#????##. 1,14 -?..??#??..#? 4,1 -?????????#??##??. 3,8 -?.?.????????#??. 4,2 -?#??????#???#????#? 3,5,1,6 -?#?#?#?.????#?#??.#? 7,9,1 -?#???????#????.?? 6,1,4,2 -##.??????.??####.? 2,2,6 -##??#...#?? 5,3 -????????.#?#?#??? 1,1,4,5,1 -.??.?#?.???.??#? 2,2,1,3 -???#?#..??#? 5,3 -???#?????.?? 4,1,1 -?????#.?###??????? 6,6,1 -??#???###????#?.?.? 2,8 -??#?..###??##???#?. 2,12 -???????#?#?#?? 5,2 -....?#?.?????###???. 2,1,3 -#?????#?#??#?#????? 2,14 -??####???#??#??.. 12,1 -#?#????#???? 3,6 -???#?..????? 1,1,4 -?.?##????.???# 4,1,3 -?#?##????#???##????? 5,3,5,1 -?.?#?#???##? 1,9 -.?#???.??##? 4,2 -?##?##????.###.?? 8,3,1 -??.??????#.?.? 1,6 -?..?#?????.. 2,1 -.??.????##?#??# 1,9,1 -.???#.#.?.??.. 3,1 -?????#?????.???#.? 4,1,4,1 -???#??#???????#???? 8,5 -??#####???#?????.? 10,1,1 -???#????#??????#?# 4,11 -?????#??#??#??# 1,1,5,1,1 -??##????.?.?.??.? 4,1,1,2 -???.?.?#.?????????#? 1,1,1,1,8 -?#???????.? 4,2,1 -??#??#????#..??????? 10,4,2 -?.??.??.??. 1,1,1 -???.???..#? 1,1,1 -???????????.?##?? 4,2,1,5 -#.?????????#???#???# 1,11,3,1 -???#??.??#? 1,2,3 -.?.?#?????????#?.. 3,9 -??.???#?.????#. 1,2,5 -#??#??.??#?#??? 5,5,1 -.???????#?????? 4,1,1,1,1 -.#????#?????#?? 1,2,2,1,3 -??#?#??.?? 7,1 -??????#?.? 2,3 -????.#??##???.?? 1,1,5,1,2 -.??###????.#?#? 7,3 -????.??????..?. 2,1,1,1,1 -???#?????##?.?.??. 9,1 -???#?#????.?#? 5,1,1 -??????????? 5,1 -?#???.?.???..#??##?? 1,2,1,2,2,3 -.??????.??#?#??? 1,2,6,1 -??#?????#??.. 1,2,1,1 -??#????????##??## 2,10,2 -?#???##???? 2,5,1 -..??.#????.???? 2,1,3,2 -.?##??#??#.?#? 4,1,2,3 -.?#??#????##?.? 6,3,1 -??.#.?###?????? 1,1,4,4 -?.??#.##?##??#?. 3,5,2 -.?.???#.?#??.. 1,1,3 -??.??##.?#. 1,2,2 -??..??##?#. 1,5 -??????????..??? 1,2,3,1 -???#?????.? 5,1 -?????##.??.??? 1,2,2,2 -???.?#??#??? 2,7 -?#.?#???.???#??.?#?. 2,1,1,6,3 -???.???#.?#?????#?. 4,7 -#?##?#?#??#??.? 4,4,2,1 -#????#?###??. 1,8 -????????..#???? 5,1,1,2 -?#???????#.?.#? 6,1,1 -??????#?????.#?.#??? 1,6,1,1,1,1 -.??#?#??.???????? 5,1,1,1,1 -???.?.?#????##?## 1,10 -????##?###?#???#? 10,1,2 -??.##?.???#???#?#? 3,9 -??#??????? 1,1,1 -??????.?##??##?# 1,2,7,1 -.??####?????????# 7,7 -????.#???? 2,3,1 -???#????????? 2,1,1,4 -?.??#???#??##????#? 1,1,5,5,2 -?##????.??.??#?.?. 5,2,2 -????????.?# 1,2,2 -??#???.???## 1,1,3 -..??.##?.#?? 1,3,2 -?????????..#??#???# 3,2,4,2 -?#???????.? 2,2 -#????#????#??????#? 1,1,1,5,1,1 -#????.?#?.## 1,1,1,2 -?#??#???#?# 8,1 -.?##?????.???? 2,1,2 -???????#??#?????##.? 1,1,4,2,2,1 -.?#.?#.?#?#.???? 1,2,4,1 -.?..#???????... 1,7 -??..#??#??#.?#???# 1,1,1,1,4,1 -?#.??????.?#. 1,1,2,1 -?.#??##???.??.#??? 1,2,3,1,1,3 -#???#.???#?.???. 2,1,1,2,1 -?#??#??????#????##?? 5,1,8 -?????#?##???????.?.? 2,12,1 -..?#???##?.?#??#???? 2,4,7 -??.#??##??#??? 1,1,2,4 -???.?#??.???????#? 1,5,1 -?.??????..???.???# 6,3,2 -?#???.?#.? 1,1,1 -.?.?????#?.????## 1,4,2,1,2 -#??#???#.???#?.? 8,1,2,1 -?.??#?#?#???#???? 11,1 -.#..???#??.#? 1,6,1 -.###??#??? 3,4 -??#??????#????#??? 1,8,4,1 -??.??...#?..??..? 1,1,2 -#??#???????#????? 8,4 -?#?.??#????? 2,1,1,2 -?????????..#? 2,1,1,2 -?????#?????#?#????. 3,5,1,1,2 -.#????#????#?? 1,7 -#.#.????????? 1,1,5,1 -???#??#?#?#?#????? 1,2,12 -?#????.??.?## 2,3,1,2 -???#??????..?#. 5,1,1,1 -#???###???.?#?#?.? 1,5,1,5,1 -?.?.?#?????? 1,7 -????#????###.??? 1,2,1,3,1 -?..?##???#?.?.??.?? 7,2 -?#?#??#.?#????.#.? 3,1,1,3,1,1 -.???#?.???#? 2,3 -?###???.?##??. 4,4 -.#??#???#?#?#??#? 5,1,6 -##?##??#??#?????. 13,1 -??#??#?.?? 1,4,2 -#??##?.??# 1,3,3 -??.???.??#???##?? 1,1,8 -?.??????#?????..?? 6,1,2,1 -?#??.??#.??.??#?#? 4,2,1,5 -.???#????# 1,7 -#???????#??#??? 3,1,4,1 -.??##?????...?#.... 7,2 -?.#???#..?.?#?? 2,1,4 -#?????#.?.??# 4,1,1,2 -?#?#????#????#? 9,2 -?????#????.??#?#??? 1,1,1,3,6,1 -.??...???.???? 2,1 -????#?.#??????? 5,3,1 -??????#???????#??# 1,2,3,1,6 -?#??.?#??#??.??? 4,3,1,1,1 -??..????#??#? 1,8 -..#?..?.?. 1,1 -?..#?..?..#???#???? 2,1,1,7 -?#???????? 2,1,3 -?.###????#?##??#.? 11,1 -??????#?.. 3,2 -.????#????#???#?# 2,8,1,1 -?.???.???#.?????#??? 1,1,1,2,9 -##??.????##?.?##?. 4,1,4,3 -???#.??#??????#???? 3,8,1 -?#??#????#.???? 6,2,1,2 -#??#????#??#?? 1,10 -#?????????#????. 1,1,8 -#?.?.#.??????# 2,1,2,3 -?#?#???????#... 8,1 -???.????.?? 1,2 -...???#??# 2,2 -??##.????#? 4,1,1 -.?#??#??????##?? 1,4,6 -??#?????.????? 4,1 -?.#.?????#?? 1,2,1,3 -.##????#??.?#?? 9,3 -?.?#???#??#.?.??.? 1,1,4,1,2 -?...?#?#????? 2,2 -????.#???????? 1,8 -?????#.?.????#??#??? 6,1,1,1,1,1 -??#????.???. 3,1,1,3 -?.???.?.??#?????? 1,1,1,6,1 -#?.?#..?????##?#?#. 1,2,2,8 -??##??..??.?. 3,2,1 -??????.?##.? 3,3 -??????##???????.?? 14,1 -??.??????###??.##??# 1,1,2,4,2,1 -????#???#??? 4,1,1 -#?.#??#?##.??..#???? 2,1,1,2,1,5 -??.##???#??# 1,2,3,1 -??#?#??.???#?#. 2,2,1,2,1 -?#.??????????#?? 2,5,1,1 -??.?.????? 1,1,1 -..#???.???? 4,1 -???????????# 3,1,1 -.???##?#??????.?.?#. 2,9,2 -????#????#???? 5,7 -.??##????.???#?.#??? 8,5,1,1 -?..????????##???#??# 1,1,1,2,10 -.??###?.??# 5,1,1 -???##??.?.??? 7,1 -##????##?#? 4,2,1 -?#?#??#???####????? 3,12,1 -??###??#??.?#. 9,1 -.?##?.??#?#????#?? 3,4,3 -.?#???#???.?.???. 8,1,2 -.?.??#?????#?#???? 1,11,1 -?????#??#?? 3,1,2 -?.??..????.#. 1,2,2,1 -?.????#??????#.#?. 1,1,2,2,3,1 -????.?#??#??.#???#.? 1,1,6,3,1 -.??#?.???????? 3,5,1 -???#????.? 1,1,1 -????#??###???#?##?#. 1,1,2,7,2,1 -..????#?.?.??????? 5,6 -??#??.??.###?#??.?? 3,7 -????????????? 1,6 -#.?##???#?? 1,4,2 -.???????.#?#?#??#?? 2,1,8,1 -..?.#.?##.??? 1,1,2,2 -?????????#.??? 1,7 -?..???#????.#??#??? 4,5 -??..???#????.?# 1,5,2,2 -.???#????#????????? 7,2,1,1,1 -??..???.?#??? 2,1 -.###?????..###?###? 6,7 -?.#.??.???#???# 1,1,3,1,1 -???.?#?????. 2,3,1,1 -.?#..???##????.????. 2,8,1 -???.#..#???? 1,1,2,1 -???#?##?.??#?##.?# 2,4,1,1,2,1 -???#????????#?.??# 1,1,1,3,1,1 -??##.????##??. 3,2,4 -???????#???????###? 12,3 -.???.?.?.?##???#?? 1,1,1,7 -.?#???..?#?? 2,4 -?.????#????## 7,2 -.??.?????..??? 4,1 -????#??????? 1,4,3 -?#?#???.?????????.?? 1,1,6,2 -??????#?#?????#????. 8,6,1 -#??????..????# 5,4 -?#??#?????#??.??##?# 2,9,5 -.?????..??? 4,3 -????????#???? 1,2,3 -????#???#.???####.?? 3,1,3,7,1 -?.???..???#?????.? 1,8 -?#?#?#??????.??#? 2,6,2,3 -?????##.#?. 1,4,1 -.#.??????##?#. 1,1,6,1 -?#?.????##?#??#???? 1,1,1,4,3,1 -??????????..? 3,1,1,1 -#.????##??.??????? 1,1,4,2,1 -?#????.?????#??##?.. 5,3,7 -.??.????#??????# 9,2 -???##??.??#??#.?. 4,3,1,1 -.????#??.? 1,3 -?#??#?????#?##?????? 8,7,1 -?????#??#??#.???#?#? 1,5,2,1,4 -?#?????#?#?##???? 1,9,1 -..???#.???? 2,1,2 -??##?#?#????#.? 6,1,3 -?#???###?.??#?? 8,4 -.##?#?????. 6,2 -.?.??##.???#?????? 3,2 -.??.??#??.????.?? 4,1 -????????..?? 6,1 -.?????#?#?#?? 1,9 -#?.?##?#?#??? 1,7,1 -??#???..?. 3,1 -#??.#??????#???. 3,2,5,1 -??#???..?##?#??.?? 5,4,2 -?...????..????#.??? 4,1 -??????#???#?. 1,8 -???.?????#?#?#?????? 1,1,1,1,2,8 -???.????.??. 2,1,2 -?.?.?????? 1,5 -.?.????#.? 1,3,1 -..?##????#???????## 5,2,2,3 -#?????#??.??.#??? 9,1,1,1 -?.##???.#? 4,2 -?#?.??##?????#.???? 1,1,4,1,1,3 -??????.??#??.#. 1,1,2,1,1 -?##?#??#..????..??# 5,1,1,1,2 -?#?#???#????????. 3,2,5 -??????#???##????? 1,11 -?#.??##??????.????#? 2,9,5 -?##???.?#??.???#? 5,2,4 -#?.?#.??##?..? 2,1,4,1 -?.?????.#??#???? 1,1,1,1,6 -????.??.?## 2,2 -??.#??#????# 5,2 -??#?.???#??#???? 3,5,1 -???..??#?.. 3,1 -??#?.????? 1,1 -##???.??.??#. 5,1,1 -.??????.?#????? 4,2,3 -???????.?????? 3,1,1,3 -.?.?????##??#??.#??? 1,9,1,2 -?????###??? 1,6,1 -????.###?? 2,4 -.?????###??.??????? 7,3 -?.#????#?... 1,2 -?.?#?.???#.?????.?? 1,1,4,4,1 -??????#??. 1,1,2 -.?.???##??? 1,5 -??????????#????? 4,1,3,1 -?##????#?###????? 12,2 -???????#????? 1,1,2,1 -???.#.?????.? 1,4 -..??#???##? 3,2 -??.?????#???????#.# 1,1,3,1,5,1 -??.???..?.???? 2,1 -???###?..?#??. 4,1 -?.???.????? 1,3 -#?#?????..??#..???? 5,1,3,2 -##??.???## 4,1,2 -?????..???.??? 3,2,1 -??#?#????.#?##?#. 4,1,6 -#.??#.##?#??????? 1,1,1,10 -.???##?#?#?????????? 13,2 -????.#..?#??#????.. 1,7 -?##??..??.?? 4,1 -?#?#?????.? 8,1 -.#???????????? 3,6,1 -???#?#????????#? 12,1 -.?#??.####? 2,4 -?#???##?..? 1,2 -?.??.?.?#???????.?# 1,2,1,6,1,2 -??????.?#. 1,1,1 -???.?????????.#. 9,1 -?#?###??#?#?? 10,1 -#.?.?#??#??? 1,1,5,1 -???????????#???##. 1,4,5,3 -?#.???????????? 1,1,4,1 -.????#???.????#?? 7,1 -.??????#????#?? 4,2 -..???????#?.? 1,4,1 -????????## 1,4,2 -??.?.?#??.????##??# 1,1,1,1,1,7 -#?..??#.???????? 2,3,7 -??#?#?#???????? 3,3,1 -?..??.?????#? 1,1,7 -#.??#???????? 1,10 -????..???#??.??? 2,4 -????????????.?#? 1,2,1,1,2 -???#???.?. 1,2,1 -??????????#??? 1,7 -???#?##?????? 6,4 -??##??.??#?#??.?? 3,6 -.?.#?#???..??# 1,3,1,2 -???????#?##??????#? 2,5,6 -?#..????.???#? 1,4,1,2 -.??#?.???#? 4,1,2 -?##????.?#??.??# 6,2,2 -????#?.???.???#??? 2,3,1,2,1,1 -?.?.?###???#.?. 1,5,1 -#?#?.??###?#??? 1,1,8 -???????????? 1,1,5 -??.???#???#? 1,2,1,2 -?#?.?.?#??.???#?? 1,4,5 -.#??????????##??#??? 1,1,10 -???.???.??..?##? 1,1,1,1,3 -??.#????#???#????? 1,2,1,1,6,1 -????????#??????? 3,3,1,1 -#??.#?.???. 2,1,3 -?????????.??#?? 1,5,3 -??#?.?#?#?.????? 1,2,5,2 -.##????##???#? 3,6 -.???????.? 1,3 -??.#..##???.#?#? 1,1,3,1,1 -?.#??#?.?#??# 1,5,4 -??##??.?????#??. 3,7 -#?#?????#?.#??.###?? 4,1,1,2,4 -#?????.????.?##? 3,1,1,1,3 -?#??#???.????? 8,3 -?.?#??#?..?#?# 5,4 -??#?#???#.????.. 9,1 -???#??##?##. 1,9 -.#..?.##????? 1,1,3 -??????..??#? 5,2 -.?.?????##??##??? 1,9,1 -?????.#??#?#??#?.? 2,9 -?????#???#?#?? 4,4 -??#.#????.##????#. 2,3,1,2,1 -??#?#.??.##??#????# 2,1,2,2,1,2 -.?.#?????#??.?????.? 1,3,3,1,2,1 -#????????#?? 1,7 -#?.??????#..?#??#? 2,1,1,1,1,6 -??#.?????#?#?##?. 2,11 -.#????#?.?? 2,2,1 -??????#?.?#.?#???..# 1,4,2,1,1,1 -??##??#.???#. 5,1,1,1 -.?#.?#?#?.?#? 1,4,1 -????#???##?????#?? 1,1,1,9,1 -?.??.????#?#?????? 1,8,3 -???#?#??.? 3,1 -#?.???.??#???##??? 2,8 -?#????#??? 3,2,1 -????.?#?.? 1,2,2 -??##??.???? 3,1 -??????.??.? 2,1,1 -???#?#.??.?..?#.?#? 5,1,1,2,2 -???.#??###??.?#???.. 6,5 -???????#??.?.??? 1,4 -????#?.????????# 5,1,1,1,2 -????#.???#???.?.??.. 4,1,1,2 -??#??#.?##??#.??# 1,1,1,5,3 -?#?.#?#?????### 2,3,1,4 -..#??..?.??.???#.?? 3,3 -...#????#.???#?##?. 1,2,8 -??#.#?#??..?..???? 1,1,5,1,2,1 -??????##???#?? 7,1 -?#??????.#.?#?? 4,1,1,4 -??????.?????????. 2,9 -??????#??????? 3,4,4 -#????#???#???#??? 11,2 -?#?.?#?.??????? 2,2,1,1,1 -?#????#??#???? 2,7 -?#?#????.??? 6,2 -??#??????? 3,1 -?.#?#????###?#????? 1,1,11,1 -?????#??#???##?###? 1,9,3 -??#????.??##? 4,1,3 -???????#???#? 2,6 -??#??#.?.????????? 2,2,1,4,1,1 -.##?????#?.? 2,1,2 -??##.?.????#?????? 2,10 -??##?.??????#?##???? 4,2,5 -.???#????##????. 11,1 -.?##??????#.. 4,3 -##.?#??#????#???? 2,7,5 -????#..?#?##??? 2,1,8 -..##??.?#?###?#??#. 4,1,8 -?.#?.???.???#.?? 1,1,2,2 -.#?#????#?.# 1,1,4,1 -?##??#??#?.###???#. 6,1,3,2 -?#?#.?????????###?? 3,2,1,1,6 -?????#???#???.???##? 2,4,2,1,1,3 -??##???#?.???. 1,6,1,1 -???##.?#????#?????? 1,2,2,3,1,2 -????.#???? 2,3 -???????.##??????#?. 5,2,5 -?###?.???#?? 3,1,2,1 -????????????? 1,6,1 -##????????.???? 2,1,3,1,1 -???#????##?? 6,3 -?.???????.?##? 4,2 -??#??##??##??#??? 6,7 -?####???.?.##??.? 6,3 -???.?#.??#? 1,2,2 -.?.?#????. 1,1,1 -.?#??.#????##??# 1,1,7,1 -???.???#???.?#? 2,1,3,1 -.????.?..?? 4,1 -??#?.#???.?#? 3,4,3 -???#????..??? 1,1,1,3 -???.???#???.?? 1,6 -.#??#???#?????? 2,11 -?......#?..?.????.. 2,3 -?.#??????#?# 1,1,7 -????#?#?#? 1,7 -..####.????? 4,3 -??#???#..?.??????#?? 1,2,8 -?#?????????...??#.?? 2,6,2 -??###??????.#???.??? 5,1,1,3,1 -???#.???????? 4,1,1,1 -?##?????#.?????#??? 9,4 -??#?#???.#?#??##??# 1,1,2,3,2,2 -?.?.#.?#??????## 1,1,2,7 -?????#?##??#.?#?? 8,1,2 -..?.?#????#????#?? 1,1,1,1,5 -????#??#?###????#.?? 1,5,3,2,1,1 -?#?#?#?.#????? 3,1,1,1 -?????????#? 2,4,1 -?#?????.??#?.?# 1,4,1,1,2 -???#???#.???.#??.# 1,2,1,2,3,1 -?..#?##????????? 6,2 -##???.??#????? 5,4,1 -??.?#???????#?#. 1,1,7 -?.??#?.#.?#?? 4,1,3 -.??????.????? 1,2,1,1 -?????#?#?#.?? 5,1,1,2 -.??????????? 1,2 -.????..#??#.? 3,1,1 -??.?#?????#. 2,1,3 -#?.?#.???..???.??#?? 1,1,2,3,4 -?.??#?#..#??#?? 1,1,1,2,1 -#?#????.????? 1,3,1,2 -???##???.#? 3,1,2 -????.???.???#??????# 2,1,1,4,1,3 -?#?.?????##????#? 1,1,1,7 -?.#???#?.. 1,3 -??##???#.?.??? 8,1,1 -??#???#???? 4,2,1 -???.?.?.?..???? 2,1 -??.??#..#?#??#??#?? 1,1,10 -???#??.?????##??#. 1,3,1,7 -????##??..?.??? 4,1 -?.??.#???#.??? 2,5,2 -?.?##????#??. 1,2,5 -???????#?.#?# 4,1,1,1 -????#?#..?#?? 1,1,1 -?????.??.?????#???? 1,2,1,2,7 -#???...??????#??? 2,4,2,1 -#?????#?????????##. 7,3,5 -?..???##????? 1,6 -.#??#????#?#?????? 2,1,8 -..??.???##?##?#.?? 2,10 -??????????????????## 3,2,1,5,1,2 -##???#???? 7,1 -?.?..?#????.. 1,5 -?.?#??????? 1,5,1 -????.?#??#..?#? 3,4,2 -?????#?????.???#?? 2,5,6 -?????###????..???? 7,1,2 -???..???????.. 3,7 -???#..??#?????.. 2,3 -??.???#???? 1,1,1 -.#????#??#??. 9,1 -???????...??##? 6,4 -??????.#??# 5,2,1 -?.?????????????## 2,1,1,2,2 -?????????#? 2,2 -???..?????????? 1,3,2,1 -???#?#???#????? 8,1 -?#???#??.?? 6,1 -?.#???#?.. 1,6 -#?.?#?????##?. 1,8 -?#?#?#??.??.?.?# 6,1,1,1,1 -???????#???###.?? 8,5,1 -??#??#????????#?#?? 7,3,4,1 -??#?????????.?#. 1,5,1,2 -.##???????.?##?? 6,3 -????#..#?#? 4,1,2 -????????????????.? 7,6 -#??#.???.????.???#?. 4,1,1,1,4 -.???#???..???##????? 6,1,3,3 -???#?...???##? 2,5 -.???#.#.#?.?.?#? 3,1,1,1,1 -?.??#??.????# 4,1,1 -###?#??..#.?????? 6,1,1,1,1 -??#?????.????? 6,2 -?????..#??#?. 4,1,1 -#????#?#?##?.??.#?? 2,8,1,2 -.???.?.??#??? 1,4 -?#??#????#?#?#??? 2,1,9 -.??#??####??..??#?.? 10,2 -#???.????? 1,1,1 -??????#????.?..# 1,5,1,1,1 -??.?#.??.??? 1,1,2,1 -?.??..??#?. 2,2 -????##.????. 1,3,4 -?.???#..??#????. 3,5 -.#???.?.#??#????#? 1,1,1,10 -?.???.?#?#??? 1,6 -.???.??.#? 1,1,1 -??#?#???#.??#.?? 7,1,1 -..?.#??#?#??#??? 1,2,1,1,3 -..?#?.#?#? 3,1,1 -?..???????#..##?# 1,1,2,1,4 -.#??.?#??###?#?. 3,9 -??.??#????##???? 1,12 -??????##?#?##???#.? 2,11,1 -????.??##??? 2,1,3 -.??#.????#?? 3,1 -.??#????#???#? 2,5 -.??...?#?.? 2,2,1 -?#??.?.##??#??#.?..? 2,1,8,1 -.##?.???#?????...? 3,6 -?.##????###??#?????? 2,6,3,2 -?#???#??#??????? 10,2 -.????#??##?? 3,1,2 -??#??????. 1,1,1 -?#???.?????#?#??#?? 2,1,10 -#???????#?? 1,2,1 -.????????. 2,1,1 -#????.??##??#??.??? 1,1,1,8,3 -??????#??#???????#? 2,12,1 -.?.??#????.? 4,2 -.?.????.??##??#.? 1,1,4,2,1 -.??#???.##??? 1,4,2,1 -??????###??##???.?# 2,5,2,1 -??????###??#?.#??? 1,1,7,2,1 -.???#???#.???????## 5,1,1,4,2 -?.?#.?####???.?#???? 1,7,5 -#????.????.#??# 1,2,4,2,1 -.??.#??#.#??.? 2,1,1,2 -??#.????#? 1,1,1 -.#.?.?.??? 1,1,2 -??#..?##??. 3,5 -?#????#??.????##..? 7,5 -.???.??.??.??? 2,2,1,1 -?#??.#?#?.?? 3,4 -????#?.???.??.#??# 6,2,2,2,1 -????.??????.??#. 2,3 -##???.?????.#???#. 4,1,1,2,1 -??...#???#???#? 1,2,6 -???.??#?#.?? 2,1,1,1 -?#??#?#????.?? 5,1,3,1 -??#??#????????# 6,1,2 -???????.????..?#.?? 1,3,2,1 -???#?..?????. 4,1 -??.??.????#?#.?#.# 1,1,7,1,1 -?.???#?????##...?# 1,1,1,1,3,2 -???##..??????????#? 3,8 -????.????.#?..#? 4,1,2,1 -#?..#?#?????.?### 1,3,2,3 -???????#??#.?. 1,7 -???#?.??#?#??.#?? 4,4,2 -??#?###?##?#?????#?? 3,3,11 -????#?.??.#??#.? 4,2,4,1 -.#???#.?.#?.#. 3,1,1,1 -?##.???.???????#?? 2,8 -???.??.#???.??. 1,4 -.#..??????#?#?##?? 1,1,2,3,2,1 -?#.?#???.??.?#??? 2,1,1,1,4 -??#??#??#????#.# 1,3,2,2,1 -??#?#?##????#??. 6,5 -????.?????? 3,1,1 -#????##?#??#??#?#?.? 9,2,1,2,1 -?.??#?#???? 1,5,1 -?.?#.??##??# 1,1,7 -.?#????#?#?????#? 5,5,3 -.???#?#??????###. 1,1,1,2,3 -#??##.?.?.?????#?? 5,1,1,1,1,3 -??###?##..#?#??. 6,1,2 -.??.???.#???? 2,3 -??????##?? 1,4 -#?#.#?.#??#?##?????? 1,1,1,1,7,2 -#?###?#?????.??.???? 5,2,1,1,3 -?????##????.??. 1,5,1 -?.?????##??#?. 1,8 -?..??.?##?..?#?#.?? 1,1,3,2,1,1 -##?##?.?.#?##? 6,4 -#?##??.??. 1,3,1 -???##???##??#?.???? 3,6 -??.??????#..????? 1,1,1,4 -????.#?????????? 1,8 -#?.?.##.???#??. 1,2,1 -??????????.????? 1,1,3,1,3 -.??????????.. 2,5 -?#??#?????.?#?#? 2,1,1,5 -???.#?#??????..?.#? 1,1,5,1,1,1 -??????????????.? 1,5 -#?#??.?.?#???. 5,1,2 -??????.???## 3,1,5 -??#??#?#.??#. 7,3 -.##???#.???? 2,3,1,2 -#?#???#?.##?#?.? 4,1,5,1 -.?#????.????#??#. 3,8 -??##?#?.#??#???? 1,2,2,1,5 -?.?#..##?.?? 1,1,2,1 -.?##???..?#? 5,1 -??#??#??.#.? 1,4,1 -##????#.??#?? 2,1,2 -??.??.???#????#.?#.? 1,1,3,2,1,1 -???.?#?##???? 1,1,2,1 -.???#???????#?? 5,1,2 -???.#??##??#??.??#?? 9,4 -.??????#.?#??????. 3,3,2 -???????##?#?##?. 1,1,6,3 -?#.?#??##???##?.. 1,7,3 -.???.#???.?#?#?? 1,1,5 -.?#??????????? 2,4 -.??????????????? 7,1,1 -.#.??#???#??. 1,5,1 -?#.????..#?#.?..#.# 1,4,3,1,1,1 -?????.?#?? 4,1,1 -?.??????#?????????# 1,6,3,1 -.????????.#??????#?# 2,5,2,4 -.?????????????#? 3,4,4 -.##..??.?? 2,1,1 -??#?#????.?#?#??.?? 7,4,2 -??.?.??###.?#? 1,1,5,3 -?#??.#??#??.?#??# 3,1,4,2,2 -????????#?#????#?# 1,3,1,3,2,1 -???#??#??????.??# 1,2,5,1 -#??#??#?#??#?.????. 1,3,1,5,2 -##?#??.??#??#?? 4,2,1 -.#?#??????..#?? 1,1,3,3 -?????.????.? 4,1 -.??????#?? 2,4 -???#??#?#???#?.?# 8,3,1 -.??###.????###.??#.? 4,7,1 -#??#????????#???#??# 2,2,1,1,7,1 -?..?##???#?.?? 4,2 -??????#????.#..? 2,3,1,1,1 -??#?#?#??##?????.??? 11,1 -.?.??????#.?????? 1,3,3,2 -?..#.?.??.??##???#? 1,1,2,7 -?????#.??#.?#??? 2,3,1,1,1 -???##?.#.?.????#???? 1,2,1,1,7,1 -.??#?.???. 1,2,1 -?????#??#.?....?? 5,1,1 -??##??.?#?.????#?##? 1,4,3,1,6 -??.????##?.#??. 1,1,3,1,1 -?????##?.#.#?## 1,5,1,1,2 -?????.?????..?.? 2,1,4,1,1 -?#?#??###??.#?#?? 8,4 -.#????#??#.?????# 3,5,1,1,1 -????##?###?.?#? 1,1,7,1 -??#??#??#????.. 1,4,6 -?#.???.??. 2,1,1 -.?#??##????? 2,7 -#??.##..#?..#?? 3,2,1,3 -???.?#?#??. 2,4 -?.?????#???? 3,2 -???.??#???#??##?#??? 1,13 -?.#?????#?.#? 4,2,1 -#?.???#.????.? 1,2,3 -????.#??.??.?#? 2,1,2,1,2 -????.?.?#?#??#?# 1,1,1,6,1 -..????#?.??? 6,3 -.??????????... 5,3 -.??#????#???.????? 10,1,2 -#?.???#?.??#? 1,4,1,1 -??#???###??.???. 9,1 -#?##.????.#??#?#???# 1,2,3,8,1 -.??#???????#?#??# 1,1,11 -?..??.??????# 1,1,7 -??.?#??..????..??? 1,2,1,1,1,1 -???#??##??????### 1,1,6,3 -?#?????###?#???. 2,8 -?#?#.????#..??? 4,1,2,1 -?.?.?.??#????..#..? 7,1 -????.?#?????. 1,6 -.??#.???????##??#?? 1,2,7 -..????????#?#? 1,2,4 -###?.??.????????.? 4,1,3,2,1,1 -?.?.??#... 1,1,1 -#????#????????? 1,1,3,2,1 -.?????#?.? 2,4 -?#?#??#?#???..#?#??? 11,1,1 -???#?.##??..#??????? 2,3,1,1,4 -.#?##???#?.?.? 1,7 -#???#???.? 1,4,1 -.???..??...?? 2,2,1 -???#???????..?. 5,1,1,1 -???????.?.#??? 5,4 -#.?????.?.#???.?#? 1,1,1,1,3,1 -##??##?#????#????.? 2,5,1,1,2,1 -??.#???#??#???## 1,13 -#?##.??.?#??#? 4,1,1,2 -?#???#?##????? 1,1,6,1 -#?.???#?#??#???#???# 1,1,1,6,1,1 -??#?#???.#?.#????.#? 5,2,2,2,2 -#.#?.?##???.#?? 1,2,4,2 -.???..??#?#? 2,4 -?#????#?????????#? 10,1,2,1 -.??..###???#?#? 2,9 -?.?????#???????? 4,1 -??.???#??.?. 1,5,1 -?????#??.?.?#??? 2,3,4 -??#.?..??#?#?.?? 2,6 -?#?#????#???? 1,1,7 -????###???#? 1,3,2 -??.#?#?????#?#??? 1,14 -?????.?#?????? 2,2,2,3 -#??..#?????#?? 3,5,1 -?#??#?#????.???#?.? 10,3 -#??#.????????????? 4,8 -??##?#??#??# 9,1 -???#???##?#??? 1,3,4 -.?.##?#?????.#? 2,5,1 -?..????#???#??????? 1,5,1,1,1,1 -????..#????? 1,1,1,1 -??##????##?##??## 12,2 -??#?###.?????..? 5,3 -????.???#?? 1,2 -???#?#???.???..#? 9,1,1 -?????#.?#..?.? 2,1,2,1 -??#?#..?#?? 4,1,1 -?.?.#????#?#??????? 1,5 -??????#??.?????? 9,3 -???.????.???#?#. 1,1,1,1,3 -??####???.#???? 1,6,2,1 -?#?.?#?.#. 1,2,1 -?#??#?#???#????#??#? 13,4 -???#???#?#?#??#????? 1,12,1,1 -?.???#??#?#? 1,1,6 -????.??????#. 1,6 -#??..?#?.?. 3,3,1 -?#?###?#.? 1,5,1 -????###???#??????? 1,10,1 -?????.?.?#? 1,1 -????#???#??##???# 2,13 -#??#??#..??..# 2,4,1,1 -??.??.????..??#.? 1,2,1,3,1 -#.???#???.????#???# 1,5,1,1,2,1 -?#????#?#??? 9,1 -????..??#?.???. 1,1,3,1,1 -???#.???#?.? 1,4 -??#??.???????.# 3,1,2,1,1 -.????????????#? 1,9 -?#????.#?.?#??? 2,1,1,2,4 -.?.?????#?..##.? 1,4,2,1 -?#????##.???#? 3,3,1 -??.?.?.???.?###??? 1,1,1,1,5,1 -.???#???????? 1,2,7 -???#.????? 1,1,4 -??.#???????? 1,5 -??.##??#.??? 1,5,1 -???#????#?????????? 12,5 -????.?#?.. 2,3 -##??#?.????#?????.? 2,1,2,2,2 -#..???#???## 1,1,3,2 -????????#?#?? 4,4 -#?????????????. 1,6,4 -??.??##??#??????# 6,4 -????#???????? 5,1,1 -?#.??#...??? 2,1,1 -???#??#?.???. 7,1 -??..?#?.?. 1,1,1 -?.????####????#??? 9,3,1 -?#.???.?#??#????? 1,1,2,7 -.???#.?#?.? 1,2 -#?#?#???????.? 3,8 -?.#????????.?.??.#. 1,7,1,1,1 -???????#????.?#. 10,2 -??.?????#? 1,5 diff --git a/day_12/input.txt b/day_12/input.txt index c5bec3a..4c0a08d 100644 --- a/day_12/input.txt +++ b/day_12/input.txt @@ -1,6 +1,1000 @@ -???.### 1,1,3 -.??..??...?##. 1,1,3 -?#?#?#?#?#?#?#? 1,3,1,6 -????.#...#... 4,1,1 -????.######..#####. 1,6,5 -?###???????? 3,2,1 \ No newline at end of file +??????#??#?? 1,1,5,1 +?#?#??##?#? 2,5,1 +????????.?#???#??##? 2,1,2,1,1,6 +#???#?????.?#?. 2,1,2,1 +?##..?#?#?? 2,4 +..#??##????###????#? 6,8 +???#..?#?? 1,1,2 +.#????#?.??? 3,2 +.?#??##?.? 1,3 +????????#? 2,1,1 +.?##???#?##????.? 7,4,1 +?##??.?#.????? 5,1,4 +?????.#??#?? 1,1,1,1 +?#.???.???.##?#?. 1,1,1,1,5 +.#??.??.???.???. 1,1,2,1,2 +.?.????.??? 1,1,3 +?????#??????????# 6,1,6 +#?????#???? 1,8 +.???.??#?.#????#?.?? 1,1,1,7,1 +.??#????##??#.# 12,1 +?#????##.#.?? 2,4,1,2 +??.??#?#.#? 1,3,2 +??#?.#????#?#? 2,9 +#??#????#????? 4,3,1 +?##????.???? 3,2 +?##??#?.#??#??#??#.? 2,2,10 +??#?#??????#.#?#.? 11,3,1 +??##.???????#??????. 2,1,2,4,2 +????.?#.???#.????.? 1,1,1,4,1,1 +???????????#???.#?? 1,10,2,2 +#???#???????#???? 1,1,7,1 +??.??#?#???.??? 1,5,1,1 +?.?.?#..## 2,2 +??????.?#??#???.? 4,1,4 +???????##?? 3,2 +?????????#?.?#?# 8,1,1 +???????.#???.?#??. 1,1,2,2,1,3 +?#????????????#????? 2,12,2 +..?##??#???.???? 8,3 +#??.?.????#???????? 1,1,2,1,7 +????#?#?##???. 2,6 +??#????....#???? 1,5,2,2 +.?????#?????? 1,5,4 +????..???.???#??##?. 1,1,1,1,1,6 +?.??#?...??? 2,3 +#?#??????##?# 3,2,2,1 +#?##?????????? 10,1 +??#?#?#????#???#??? 13,2 +?#?.??#???#.?? 3,3,2,1 +??????#????????#?? 4,1,5,1 +#?????#.?. 3,2 +??#?#?##?.???? 1,7,1,1 +#?#??#?.##???.???#? 1,5,2,1,4 +?????#???#.#??# 1,1,5,2,1 +.?#?#...??#?#??#?# 1,1,6,3 +???#??#????#?#. 1,9,1 +#????#???.? 1,1,1 +?#?#??#??.#. 1,1,3,1 +..?.???#.????? 1,2,1,2 +.??#???#??????#.??.? 7,4 +.????????? 2,2 +?.??.???.?? 1,1,2 +???.?.???#..??. 1,4 +.?..?.????#???? 1,1,3,2 +??????##??#????.# 1,1,8,1,1 +.?#?.#??.??#?#???#? 3,1,1,9 +??###??#??????#?#?? 1,6,1,1,1,3 +?#??.??#?? 2,1,2 +.???#????#??? 4,1 +??.#?##??? 1,2,1 +?????.???.?#.##?? 4,2,2,2,1 +???#???????#.#???.?? 4,1,1,1,3,1 +?..????#??##?#? 1,8,1 +#???#?##??? 3,1,4 +??.???.?##.?..?#? 3,3,1,2 +????.??????#? 1,1,3,1 +?????#?#?##??. 4,6,1 +.?????????# 2,4 +??.?.?????#?#. 1,7 +.#?#??.??????????? 1,3,7,1 +????##?#?##?? 1,2,4 +??.??????#?#???. 1,2,5 +?#.?#??#????.?? 2,1,1,1,1 +???##?.?.???#..?#?#? 1,2,1,1,1,5 +.??.#??????#?#### 1,1,1,9 +?#?#?.???##????# 1,2,1,3,4 +##?#.#??#?? 4,5 +????..#??. 3,2 +??#????.??##??# 4,1,5 +??.???.#???????????? 2,1,6,1,3 +???#?.?.????#?????? 4,10 +#?????#?????. 1,1,1,5 +.?#??.??#???. 2,6 +?#.?????#??##???. 1,1,2,1,5 +.#?.???????##?.#.. 2,2,3,1 +??#??#??.?#????? 1,1,3,3,1 +#.????.???.??.????# 1,1,1,2,1,5 +??#??.???#?? 5,1,1,1 +?##?????????? 5,1 +??.??#??.?. 4,1 +.?.##????.?.? 1,5,1 +.#.?????????.?????? 1,7,1,2 +?##?..?????#??##?##? 3,12 +#?#?##?#?????#??#??? 1,9,1,1 +????#?##???#? 1,8 +??.?##?????????.? 1,11 +??#???#?#.? 2,2,1 +.????#???.???#?#? 1,5,5 +????.??.##??? 2,4 +?#???.???.#????#?? 1,1,1,1,1,4 +??######?#????????. 8,1,1,1 +????.?????? 2,3 +.???#????? 1,1,1 +??????#?#?#??# 10,1 +#?#????????? 1,6,1 +???.?.?##?#?.????. 1,6,2 +?.??????#.#.. 1,1,3,1 +???.?????#?.? 1,2,2,1 +#..???.?.#?? 1,3,1,3 +?#????.#?????#. 2,2,1,2,1 +..#?????????..??## 1,1,1,1,1,3 +??????????#??#? 1,12 +#?#?.?#??????. 4,1,2,1 +???#????#?#???..?# 9,4,1 +.??????#..?. 1,1,1,1 +?.??#????#? 5,1 +#?.?.??#?#.?? 1,1,3 +?#.????.?? 1,3 +#??#??##?#.?..?? 1,6,1,1,2 +.???#??????.?#?.? 5,1,1,1,1 +.??.?.????? 1,1,2 +..?##?????#????? 5,5 +?..?#??#?????.? 2,4 +???#.#????.# 3,2,1,1 +??.??#.?.???? 2,2 +????????##??.??.? 7,3,2,1 +.???#????????????? 10,2 +.?#??.???.???# 3,2,1,1 +?##???#.?? 2,2,2 +??.??#?.?? 1,4,1 +??#?#.??#? 1,3,3 +?#??????.?????#??.#? 2,2,1,1,4,1 +???????.???.#?.?? 7,2,2,1 +.????????#????###?# 1,4,1,3,1 +????????#??.?#?..#.? 2,6,2,1,1 +?#???.?????#?.????? 2,1,1,3,1,1 +???#??.??.. 4,1 +.????.?.??. 4,1,2 +?????????.#? 1,1,1 +?#??#?####??. 9,1 +???#??????#?.#?#???? 1,1,3,1,3,1 +?#?#???#??#?? 9,1 +????#???.?? 3,2 +..#??##???.#?. 1,4,2 +??.?????.?? 3,2 +?#?..???##??.? 1,7 +?????#??????#????? 13,1,1 +?#??#?##.?.?#???# 1,4,1,2,1 +??..??..???.?## 2,1,2,2 +??#??.???#????????? 1,1,1,1,8,1 +???.?..?#. 3,2 +??#??.#.??.#?????? 2,1,1,1,4 +##??..?#??? 4,3 +?#.?.????.##??#? 1,1,4,2,2 +?#???#?????##??? 2,3,5 +??#?????.#?##??? 6,1,5 +??#?..??????? 3,3,1 +?.?.?????###???. 1,10 +#????###???#???.?#? 1,6,3,1 +?.?#?.???##???##??. 2,10 +???.?.#??# 1,2,1 +..#????##?#??????? 1,9,1 +#?#.????## 1,1,4 +???.??#?.#.. 1,1,1,1 +?#?.#.?#.?????#? 1,1,1,2,3 +?#???.?#????#? 1,1,1,4 +???##?????#????##. 1,14 +?..??#??..#? 4,1 +?????????#??##??. 3,8 +?.?.????????#??. 4,2 +?#??????#???#????#? 3,5,1,6 +?#?#?#?.????#?#??.#? 7,9,1 +?#???????#????.?? 6,1,4,2 +##.??????.??####.? 2,2,6 +##??#...#?? 5,3 +????????.#?#?#??? 1,1,4,5,1 +.??.?#?.???.??#? 2,2,1,3 +???#?#..??#? 5,3 +???#?????.?? 4,1,1 +?????#.?###??????? 6,6,1 +??#???###????#?.?.? 2,8 +??#?..###??##???#?. 2,12 +???????#?#?#?? 5,2 +....?#?.?????###???. 2,1,3 +#?????#?#??#?#????? 2,14 +??####???#??#??.. 12,1 +#?#????#???? 3,6 +???#?..????? 1,1,4 +?.?##????.???# 4,1,3 +?#?##????#???##????? 5,3,5,1 +?.?#?#???##? 1,9 +.?#???.??##? 4,2 +?##?##????.###.?? 8,3,1 +??.??????#.?.? 1,6 +?..?#?????.. 2,1 +.??.????##?#??# 1,9,1 +.???#.#.?.??.. 3,1 +?????#?????.???#.? 4,1,4,1 +???#??#???????#???? 8,5 +??#####???#?????.? 10,1,1 +???#????#??????#?# 4,11 +?????#??#??#??# 1,1,5,1,1 +??##????.?.?.??.? 4,1,1,2 +???.?.?#.?????????#? 1,1,1,1,8 +?#???????.? 4,2,1 +??#??#????#..??????? 10,4,2 +?.??.??.??. 1,1,1 +???.???..#? 1,1,1 +???????????.?##?? 4,2,1,5 +#.?????????#???#???# 1,11,3,1 +???#??.??#? 1,2,3 +.?.?#?????????#?.. 3,9 +??.???#?.????#. 1,2,5 +#??#??.??#?#??? 5,5,1 +.???????#?????? 4,1,1,1,1 +.#????#?????#?? 1,2,2,1,3 +??#?#??.?? 7,1 +??????#?.? 2,3 +????.#??##???.?? 1,1,5,1,2 +.??###????.#?#? 7,3 +????.??????..?. 2,1,1,1,1 +???#?????##?.?.??. 9,1 +???#?#????.?#? 5,1,1 +??????????? 5,1 +?#???.?.???..#??##?? 1,2,1,2,2,3 +.??????.??#?#??? 1,2,6,1 +??#?????#??.. 1,2,1,1 +??#????????##??## 2,10,2 +?#???##???? 2,5,1 +..??.#????.???? 2,1,3,2 +.?##??#??#.?#? 4,1,2,3 +.?#??#????##?.? 6,3,1 +??.#.?###?????? 1,1,4,4 +?.??#.##?##??#?. 3,5,2 +.?.???#.?#??.. 1,1,3 +??.??##.?#. 1,2,2 +??..??##?#. 1,5 +??????????..??? 1,2,3,1 +???#?????.? 5,1 +?????##.??.??? 1,2,2,2 +???.?#??#??? 2,7 +?#.?#???.???#??.?#?. 2,1,1,6,3 +???.???#.?#?????#?. 4,7 +#?##?#?#??#??.? 4,4,2,1 +#????#?###??. 1,8 +????????..#???? 5,1,1,2 +?#???????#.?.#? 6,1,1 +??????#?????.#?.#??? 1,6,1,1,1,1 +.??#?#??.???????? 5,1,1,1,1 +???.?.?#????##?## 1,10 +????##?###?#???#? 10,1,2 +??.##?.???#???#?#? 3,9 +??#??????? 1,1,1 +??????.?##??##?# 1,2,7,1 +.??####?????????# 7,7 +????.#???? 2,3,1 +???#????????? 2,1,1,4 +?.??#???#??##????#? 1,1,5,5,2 +?##????.??.??#?.?. 5,2,2 +????????.?# 1,2,2 +??#???.???## 1,1,3 +..??.##?.#?? 1,3,2 +?????????..#??#???# 3,2,4,2 +?#???????.? 2,2 +#????#????#??????#? 1,1,1,5,1,1 +#????.?#?.## 1,1,1,2 +?#??#???#?# 8,1 +.?##?????.???? 2,1,2 +???????#??#?????##.? 1,1,4,2,2,1 +.?#.?#.?#?#.???? 1,2,4,1 +.?..#???????... 1,7 +??..#??#??#.?#???# 1,1,1,1,4,1 +?#.??????.?#. 1,1,2,1 +?.#??##???.??.#??? 1,2,3,1,1,3 +#???#.???#?.???. 2,1,1,2,1 +?#??#??????#????##?? 5,1,8 +?????#?##???????.?.? 2,12,1 +..?#???##?.?#??#???? 2,4,7 +??.#??##??#??? 1,1,2,4 +???.?#??.???????#? 1,5,1 +?.??????..???.???# 6,3,2 +?#???.?#.? 1,1,1 +.?.?????#?.????## 1,4,2,1,2 +#??#???#.???#?.? 8,1,2,1 +?.??#?#?#???#???? 11,1 +.#..???#??.#? 1,6,1 +.###??#??? 3,4 +??#??????#????#??? 1,8,4,1 +??.??...#?..??..? 1,1,2 +#??#???????#????? 8,4 +?#?.??#????? 2,1,1,2 +?????????..#? 2,1,1,2 +?????#?????#?#????. 3,5,1,1,2 +.#????#????#?? 1,7 +#.#.????????? 1,1,5,1 +???#??#?#?#?#????? 1,2,12 +?#????.??.?## 2,3,1,2 +???#??????..?#. 5,1,1,1 +#???###???.?#?#?.? 1,5,1,5,1 +?.?.?#?????? 1,7 +????#????###.??? 1,2,1,3,1 +?..?##???#?.?.??.?? 7,2 +?#?#??#.?#????.#.? 3,1,1,3,1,1 +.???#?.???#? 2,3 +?###???.?##??. 4,4 +.#??#???#?#?#??#? 5,1,6 +##?##??#??#?????. 13,1 +??#??#?.?? 1,4,2 +#??##?.??# 1,3,3 +??.???.??#???##?? 1,1,8 +?.??????#?????..?? 6,1,2,1 +?#??.??#.??.??#?#? 4,2,1,5 +.???#????# 1,7 +#???????#??#??? 3,1,4,1 +.??##?????...?#.... 7,2 +?.#???#..?.?#?? 2,1,4 +#?????#.?.??# 4,1,1,2 +?#?#????#????#? 9,2 +?????#????.??#?#??? 1,1,1,3,6,1 +.??...???.???? 2,1 +????#?.#??????? 5,3,1 +??????#???????#??# 1,2,3,1,6 +?#??.?#??#??.??? 4,3,1,1,1 +??..????#??#? 1,8 +..#?..?.?. 1,1 +?..#?..?..#???#???? 2,1,1,7 +?#???????? 2,1,3 +?.###????#?##??#.? 11,1 +??????#?.. 3,2 +.????#????#???#?# 2,8,1,1 +?.???.???#.?????#??? 1,1,1,2,9 +##??.????##?.?##?. 4,1,4,3 +???#.??#??????#???? 3,8,1 +?#??#????#.???? 6,2,1,2 +#??#????#??#?? 1,10 +#?????????#????. 1,1,8 +#?.?.#.??????# 2,1,2,3 +?#?#???????#... 8,1 +???.????.?? 1,2 +...???#??# 2,2 +??##.????#? 4,1,1 +.?#??#??????##?? 1,4,6 +??#?????.????? 4,1 +?.#.?????#?? 1,2,1,3 +.##????#??.?#?? 9,3 +?.?#???#??#.?.??.? 1,1,4,1,2 +?...?#?#????? 2,2 +????.#???????? 1,8 +?????#.?.????#??#??? 6,1,1,1,1,1 +??#????.???. 3,1,1,3 +?.???.?.??#?????? 1,1,1,6,1 +#?.?#..?????##?#?#. 1,2,2,8 +??##??..??.?. 3,2,1 +??????.?##.? 3,3 +??????##???????.?? 14,1 +??.??????###??.##??# 1,1,2,4,2,1 +????#???#??? 4,1,1 +#?.#??#?##.??..#???? 2,1,1,2,1,5 +??.##???#??# 1,2,3,1 +??#?#??.???#?#. 2,2,1,2,1 +?#.??????????#?? 2,5,1,1 +??.?.????? 1,1,1 +..#???.???? 4,1 +???????????# 3,1,1 +.???##?#??????.?.?#. 2,9,2 +????#????#???? 5,7 +.??##????.???#?.#??? 8,5,1,1 +?..????????##???#??# 1,1,1,2,10 +.??###?.??# 5,1,1 +???##??.?.??? 7,1 +##????##?#? 4,2,1 +?#?#??#???####????? 3,12,1 +??###??#??.?#. 9,1 +.?##?.??#?#????#?? 3,4,3 +.?#???#???.?.???. 8,1,2 +.?.??#?????#?#???? 1,11,1 +?????#??#?? 3,1,2 +?.??..????.#. 1,2,2,1 +?.????#??????#.#?. 1,1,2,2,3,1 +????.?#??#??.#???#.? 1,1,6,3,1 +.??#?.???????? 3,5,1 +???#????.? 1,1,1 +????#??###???#?##?#. 1,1,2,7,2,1 +..????#?.?.??????? 5,6 +??#??.??.###?#??.?? 3,7 +????????????? 1,6 +#.?##???#?? 1,4,2 +.???????.#?#?#??#?? 2,1,8,1 +..?.#.?##.??? 1,1,2,2 +?????????#.??? 1,7 +?..???#????.#??#??? 4,5 +??..???#????.?# 1,5,2,2 +.???#????#????????? 7,2,1,1,1 +??..???.?#??? 2,1 +.###?????..###?###? 6,7 +?.#.??.???#???# 1,1,3,1,1 +???.?#?????. 2,3,1,1 +.?#..???##????.????. 2,8,1 +???.#..#???? 1,1,2,1 +???#?##?.??#?##.?# 2,4,1,1,2,1 +???#????????#?.??# 1,1,1,3,1,1 +??##.????##??. 3,2,4 +???????#???????###? 12,3 +.???.?.?.?##???#?? 1,1,1,7 +.?#???..?#?? 2,4 +?.????#????## 7,2 +.??.?????..??? 4,1 +????#??????? 1,4,3 +?#?#???.?????????.?? 1,1,6,2 +??????#?#?????#????. 8,6,1 +#??????..????# 5,4 +?#??#?????#??.??##?# 2,9,5 +.?????..??? 4,3 +????????#???? 1,2,3 +????#???#.???####.?? 3,1,3,7,1 +?.???..???#?????.? 1,8 +?#?#?#??????.??#? 2,6,2,3 +?????##.#?. 1,4,1 +.#.??????##?#. 1,1,6,1 +?#?.????##?#??#???? 1,1,1,4,3,1 +??????????..? 3,1,1,1 +#.????##??.??????? 1,1,4,2,1 +?#????.?????#??##?.. 5,3,7 +.??.????#??????# 9,2 +???##??.??#??#.?. 4,3,1,1 +.????#??.? 1,3 +?#??#?????#?##?????? 8,7,1 +?????#??#??#.???#?#? 1,5,2,1,4 +?#?????#?#?##???? 1,9,1 +..???#.???? 2,1,2 +??##?#?#????#.? 6,1,3 +?#???###?.??#?? 8,4 +.##?#?????. 6,2 +.?.??##.???#?????? 3,2 +.??.??#??.????.?? 4,1 +????????..?? 6,1 +.?????#?#?#?? 1,9 +#?.?##?#?#??? 1,7,1 +??#???..?. 3,1 +#??.#??????#???. 3,2,5,1 +??#???..?##?#??.?? 5,4,2 +?...????..????#.??? 4,1 +??????#???#?. 1,8 +???.?????#?#?#?????? 1,1,1,1,2,8 +???.????.??. 2,1,2 +?.?.?????? 1,5 +.?.????#.? 1,3,1 +..?##????#???????## 5,2,2,3 +#?????#??.??.#??? 9,1,1,1 +?.##???.#? 4,2 +?#?.??##?????#.???? 1,1,4,1,1,3 +??????.??#??.#. 1,1,2,1,1 +?##?#??#..????..??# 5,1,1,1,2 +?#?#???#????????. 3,2,5 +??????#???##????? 1,11 +?#.??##??????.????#? 2,9,5 +?##???.?#??.???#? 5,2,4 +#?.?#.??##?..? 2,1,4,1 +?.?????.#??#???? 1,1,1,1,6 +????.??.?## 2,2 +??.#??#????# 5,2 +??#?.???#??#???? 3,5,1 +???..??#?.. 3,1 +??#?.????? 1,1 +##???.??.??#. 5,1,1 +.??????.?#????? 4,2,3 +???????.?????? 3,1,1,3 +.?.?????##??#??.#??? 1,9,1,2 +?????###??? 1,6,1 +????.###?? 2,4 +.?????###??.??????? 7,3 +?.#????#?... 1,2 +?.?#?.???#.?????.?? 1,1,4,4,1 +??????#??. 1,1,2 +.?.???##??? 1,5 +??????????#????? 4,1,3,1 +?##????#?###????? 12,2 +???????#????? 1,1,2,1 +???.#.?????.? 1,4 +..??#???##? 3,2 +??.?????#???????#.# 1,1,3,1,5,1 +??.???..?.???? 2,1 +???###?..?#??. 4,1 +?.???.????? 1,3 +#?#?????..??#..???? 5,1,3,2 +##??.???## 4,1,2 +?????..???.??? 3,2,1 +??#?#????.#?##?#. 4,1,6 +#.??#.##?#??????? 1,1,1,10 +.???##?#?#?????????? 13,2 +????.#..?#??#????.. 1,7 +?##??..??.?? 4,1 +?#?#?????.? 8,1 +.#???????????? 3,6,1 +???#?#????????#? 12,1 +.?#??.####? 2,4 +?#???##?..? 1,2 +?.??.?.?#???????.?# 1,2,1,6,1,2 +??????.?#. 1,1,1 +???.?????????.#. 9,1 +?#?###??#?#?? 10,1 +#.?.?#??#??? 1,1,5,1 +???????????#???##. 1,4,5,3 +?#.???????????? 1,1,4,1 +.????#???.????#?? 7,1 +.??????#????#?? 4,2 +..???????#?.? 1,4,1 +????????## 1,4,2 +??.?.?#??.????##??# 1,1,1,1,1,7 +#?..??#.???????? 2,3,7 +??#?#?#???????? 3,3,1 +?..??.?????#? 1,1,7 +#.??#???????? 1,10 +????..???#??.??? 2,4 +????????????.?#? 1,2,1,1,2 +???#???.?. 1,2,1 +??????????#??? 1,7 +???#?##?????? 6,4 +??##??.??#?#??.?? 3,6 +.?.#?#???..??# 1,3,1,2 +???????#?##??????#? 2,5,6 +?#..????.???#? 1,4,1,2 +.??#?.???#? 4,1,2 +?##????.?#??.??# 6,2,2 +????#?.???.???#??? 2,3,1,2,1,1 +?.?.?###???#.?. 1,5,1 +#?#?.??###?#??? 1,1,8 +???????????? 1,1,5 +??.???#???#? 1,2,1,2 +?#?.?.?#??.???#?? 1,4,5 +.#??????????##??#??? 1,1,10 +???.???.??..?##? 1,1,1,1,3 +??.#????#???#????? 1,2,1,1,6,1 +????????#??????? 3,3,1,1 +#??.#?.???. 2,1,3 +?????????.??#?? 1,5,3 +??#?.?#?#?.????? 1,2,5,2 +.##????##???#? 3,6 +.???????.? 1,3 +??.#..##???.#?#? 1,1,3,1,1 +?.#??#?.?#??# 1,5,4 +??##??.?????#??. 3,7 +#?#?????#?.#??.###?? 4,1,1,2,4 +#?????.????.?##? 3,1,1,1,3 +?#??#???.????? 8,3 +?.?#??#?..?#?# 5,4 +??#?#???#.????.. 9,1 +???#??##?##. 1,9 +.#..?.##????? 1,1,3 +??????..??#? 5,2 +.?.?????##??##??? 1,9,1 +?????.#??#?#??#?.? 2,9 +?????#???#?#?? 4,4 +??#.#????.##????#. 2,3,1,2,1 +??#?#.??.##??#????# 2,1,2,2,1,2 +.?.#?????#??.?????.? 1,3,3,1,2,1 +#????????#?? 1,7 +#?.??????#..?#??#? 2,1,1,1,1,6 +??#.?????#?#?##?. 2,11 +.#????#?.?? 2,2,1 +??????#?.?#.?#???..# 1,4,2,1,1,1 +??##??#.???#. 5,1,1,1 +.?#.?#?#?.?#? 1,4,1 +????#???##?????#?? 1,1,1,9,1 +?.??.????#?#?????? 1,8,3 +???#?#??.? 3,1 +#?.???.??#???##??? 2,8 +?#????#??? 3,2,1 +????.?#?.? 1,2,2 +??##??.???? 3,1 +??????.??.? 2,1,1 +???#?#.??.?..?#.?#? 5,1,1,2,2 +???.#??###??.?#???.. 6,5 +???????#??.?.??? 1,4 +????#?.????????# 5,1,1,1,2 +????#.???#???.?.??.. 4,1,1,2 +??#??#.?##??#.??# 1,1,1,5,3 +?#?.#?#?????### 2,3,1,4 +..#??..?.??.???#.?? 3,3 +...#????#.???#?##?. 1,2,8 +??#.#?#??..?..???? 1,1,5,1,2,1 +??????##???#?? 7,1 +?#??????.#.?#?? 4,1,1,4 +??????.?????????. 2,9 +??????#??????? 3,4,4 +#????#???#???#??? 11,2 +?#?.?#?.??????? 2,2,1,1,1 +?#????#??#???? 2,7 +?#?#????.??? 6,2 +??#??????? 3,1 +?.#?#????###?#????? 1,1,11,1 +?????#??#???##?###? 1,9,3 +??#????.??##? 4,1,3 +???????#???#? 2,6 +??#??#.?.????????? 2,2,1,4,1,1 +.##?????#?.? 2,1,2 +??##.?.????#?????? 2,10 +??##?.??????#?##???? 4,2,5 +.???#????##????. 11,1 +.?##??????#.. 4,3 +##.?#??#????#???? 2,7,5 +????#..?#?##??? 2,1,8 +..##??.?#?###?#??#. 4,1,8 +?.#?.???.???#.?? 1,1,2,2 +.#?#????#?.# 1,1,4,1 +?##??#??#?.###???#. 6,1,3,2 +?#?#.?????????###?? 3,2,1,1,6 +?????#???#???.???##? 2,4,2,1,1,3 +??##???#?.???. 1,6,1,1 +???##.?#????#?????? 1,2,2,3,1,2 +????.#???? 2,3 +???????.##??????#?. 5,2,5 +?###?.???#?? 3,1,2,1 +????????????? 1,6,1 +##????????.???? 2,1,3,1,1 +???#????##?? 6,3 +?.???????.?##? 4,2 +??#??##??##??#??? 6,7 +?####???.?.##??.? 6,3 +???.?#.??#? 1,2,2 +.?.?#????. 1,1,1 +.?#??.#????##??# 1,1,7,1 +???.???#???.?#? 2,1,3,1 +.????.?..?? 4,1 +??#?.#???.?#? 3,4,3 +???#????..??? 1,1,1,3 +???.???#???.?? 1,6 +.#??#???#?????? 2,11 +?......#?..?.????.. 2,3 +?.#??????#?# 1,1,7 +????#?#?#? 1,7 +..####.????? 4,3 +??#???#..?.??????#?? 1,2,8 +?#?????????...??#.?? 2,6,2 +??###??????.#???.??? 5,1,1,3,1 +???#.???????? 4,1,1,1 +?##?????#.?????#??? 9,4 +??#?#???.#?#??##??# 1,1,2,3,2,2 +?.?.#.?#??????## 1,1,2,7 +?????#?##??#.?#?? 8,1,2 +..?.?#????#????#?? 1,1,1,1,5 +????#??#?###????#.?? 1,5,3,2,1,1 +?#?#?#?.#????? 3,1,1,1 +?????????#? 2,4,1 +?#?????.??#?.?# 1,4,1,1,2 +???#???#.???.#??.# 1,2,1,2,3,1 +?..#?##????????? 6,2 +##???.??#????? 5,4,1 +??.?#???????#?#. 1,1,7 +?.??#?.#.?#?? 4,1,3 +.??????.????? 1,2,1,1 +?????#?#?#.?? 5,1,1,2 +.??????????? 1,2 +.????..#??#.? 3,1,1 +??.?#?????#. 2,1,3 +#?.?#.???..???.??#?? 1,1,2,3,4 +?.??#?#..#??#?? 1,1,1,2,1 +#?#????.????? 1,3,1,2 +???##???.#? 3,1,2 +????.???.???#??????# 2,1,1,4,1,3 +?#?.?????##????#? 1,1,1,7 +?.#???#?.. 1,3 +??##???#.?.??? 8,1,1 +??#???#???? 4,2,1 +???.?.?.?..???? 2,1 +??.??#..#?#??#??#?? 1,1,10 +???#??.?????##??#. 1,3,1,7 +????##??..?.??? 4,1 +?.??.#???#.??? 2,5,2 +?.?##????#??. 1,2,5 +???????#?.#?# 4,1,1,1 +????#?#..?#?? 1,1,1 +?????.??.?????#???? 1,2,1,2,7 +#???...??????#??? 2,4,2,1 +#?????#?????????##. 7,3,5 +?..???##????? 1,6 +.#??#????#?#?????? 2,1,8 +..??.???##?##?#.?? 2,10 +??????????????????## 3,2,1,5,1,2 +##???#???? 7,1 +?.?..?#????.. 1,5 +?.?#??????? 1,5,1 +????.?#??#..?#? 3,4,2 +?????#?????.???#?? 2,5,6 +?????###????..???? 7,1,2 +???..???????.. 3,7 +???#..??#?????.. 2,3 +??.???#???? 1,1,1 +.#????#??#??. 9,1 +???????...??##? 6,4 +??????.#??# 5,2,1 +?.?????????????## 2,1,1,2,2 +?????????#? 2,2 +???..?????????? 1,3,2,1 +???#?#???#????? 8,1 +?#???#??.?? 6,1 +?.#???#?.. 1,6 +#?.?#?????##?. 1,8 +?#?#?#??.??.?.?# 6,1,1,1,1 +???????#???###.?? 8,5,1 +??#??#????????#?#?? 7,3,4,1 +??#?????????.?#. 1,5,1,2 +.##???????.?##?? 6,3 +????#..#?#? 4,1,2 +????????????????.? 7,6 +#??#.???.????.???#?. 4,1,1,1,4 +.???#???..???##????? 6,1,3,3 +???#?...???##? 2,5 +.???#.#.#?.?.?#? 3,1,1,1,1 +?.??#??.????# 4,1,1 +###?#??..#.?????? 6,1,1,1,1 +??#?????.????? 6,2 +?????..#??#?. 4,1,1 +#????#?#?##?.??.#?? 2,8,1,2 +.???.?.??#??? 1,4 +?#??#????#?#?#??? 2,1,9 +.??#??####??..??#?.? 10,2 +#???.????? 1,1,1 +??????#????.?..# 1,5,1,1,1 +??.?#.??.??? 1,1,2,1 +?.??..??#?. 2,2 +????##.????. 1,3,4 +?.???#..??#????. 3,5 +.#???.?.#??#????#? 1,1,1,10 +?.???.?#?#??? 1,6 +.???.??.#? 1,1,1 +??#?#???#.??#.?? 7,1,1 +..?.#??#?#??#??? 1,2,1,1,3 +..?#?.#?#? 3,1,1 +?..???????#..##?# 1,1,2,1,4 +.#??.?#??###?#?. 3,9 +??.??#????##???? 1,12 +??????##?#?##???#.? 2,11,1 +????.??##??? 2,1,3 +.??#.????#?? 3,1 +.??#????#???#? 2,5 +.??...?#?.? 2,2,1 +?#??.?.##??#??#.?..? 2,1,8,1 +.##?.???#?????...? 3,6 +?.##????###??#?????? 2,6,3,2 +?#???#??#??????? 10,2 +.????#??##?? 3,1,2 +??#??????. 1,1,1 +?#???.?????#?#??#?? 2,1,10 +#???????#?? 1,2,1 +.????????. 2,1,1 +#????.??##??#??.??? 1,1,1,8,3 +??????#??#???????#? 2,12,1 +.?.??#????.? 4,2 +.?.????.??##??#.? 1,1,4,2,1 +.??#???.##??? 1,4,2,1 +??????###??##???.?# 2,5,2,1 +??????###??#?.#??? 1,1,7,2,1 +.???#???#.???????## 5,1,1,4,2 +?.?#.?####???.?#???? 1,7,5 +#????.????.#??# 1,2,4,2,1 +.??.#??#.#??.? 2,1,1,2 +??#.????#? 1,1,1 +.#.?.?.??? 1,1,2 +??#..?##??. 3,5 +?#????#??.????##..? 7,5 +.???.??.??.??? 2,2,1,1 +?#??.#?#?.?? 3,4 +????#?.???.??.#??# 6,2,2,2,1 +????.??????.??#. 2,3 +##???.?????.#???#. 4,1,1,2,1 +??...#???#???#? 1,2,6 +???.??#?#.?? 2,1,1,1 +?#??#?#????.?? 5,1,3,1 +??#??#????????# 6,1,2 +???????.????..?#.?? 1,3,2,1 +???#?..?????. 4,1 +??.??.????#?#.?#.# 1,1,7,1,1 +?.???#?????##...?# 1,1,1,1,3,2 +???##..??????????#? 3,8 +????.????.#?..#? 4,1,2,1 +#?..#?#?????.?### 1,3,2,3 +???????#??#.?. 1,7 +???#?.??#?#??.#?? 4,4,2 +??#?###?##?#?????#?? 3,3,11 +????#?.??.#??#.? 4,2,4,1 +.#???#.?.#?.#. 3,1,1,1 +?##.???.???????#?? 2,8 +???.??.#???.??. 1,4 +.#..??????#?#?##?? 1,1,2,3,2,1 +?#.?#???.??.?#??? 2,1,1,1,4 +??#??#??#????#.# 1,3,2,2,1 +??#?#?##????#??. 6,5 +????.?????? 3,1,1 +#????##?#??#??#?#?.? 9,2,1,2,1 +?.??#?#???? 1,5,1 +?.?#.??##??# 1,1,7 +.?#????#?#?????#? 5,5,3 +.???#?#??????###. 1,1,1,2,3 +#??##.?.?.?????#?? 5,1,1,1,1,3 +??###?##..#?#??. 6,1,2 +.??.???.#???? 2,3 +??????##?? 1,4 +#?#.#?.#??#?##?????? 1,1,1,1,7,2 +#?###?#?????.??.???? 5,2,1,1,3 +?????##????.??. 1,5,1 +?.?????##??#?. 1,8 +?..??.?##?..?#?#.?? 1,1,3,2,1,1 +##?##?.?.#?##? 6,4 +#?##??.??. 1,3,1 +???##???##??#?.???? 3,6 +??.??????#..????? 1,1,1,4 +????.#?????????? 1,8 +#?.?.##.???#??. 1,2,1 +??????????.????? 1,1,3,1,3 +.??????????.. 2,5 +?#??#?????.?#?#? 2,1,1,5 +???.#?#??????..?.#? 1,1,5,1,1,1 +??????????????.? 1,5 +#?#??.?.?#???. 5,1,2 +??????.???## 3,1,5 +??#??#?#.??#. 7,3 +.##???#.???? 2,3,1,2 +#?#???#?.##?#?.? 4,1,5,1 +.?#????.????#??#. 3,8 +??##?#?.#??#???? 1,2,2,1,5 +?.?#..##?.?? 1,1,2,1 +.?##???..?#? 5,1 +??#??#??.#.? 1,4,1 +##????#.??#?? 2,1,2 +??.??.???#????#.?#.? 1,1,3,2,1,1 +???.?#?##???? 1,1,2,1 +.???#???????#?? 5,1,2 +???.#??##??#??.??#?? 9,4 +.??????#.?#??????. 3,3,2 +???????##?#?##?. 1,1,6,3 +?#.?#??##???##?.. 1,7,3 +.???.#???.?#?#?? 1,1,5 +.?#??????????? 2,4 +.??????????????? 7,1,1 +.#.??#???#??. 1,5,1 +?#.????..#?#.?..#.# 1,4,3,1,1,1 +?????.?#?? 4,1,1 +?.??????#?????????# 1,6,3,1 +.????????.#??????#?# 2,5,2,4 +.?????????????#? 3,4,4 +.##..??.?? 2,1,1 +??#?#????.?#?#??.?? 7,4,2 +??.?.??###.?#? 1,1,5,3 +?#??.#??#??.?#??# 3,1,4,2,2 +????????#?#????#?# 1,3,1,3,2,1 +???#??#??????.??# 1,2,5,1 +#??#??#?#??#?.????. 1,3,1,5,2 +##?#??.??#??#?? 4,2,1 +.#?#??????..#?? 1,1,3,3 +?????.????.? 4,1 +.??????#?? 2,4 +???#??#?#???#?.?# 8,3,1 +.??###.????###.??#.? 4,7,1 +#??#????????#???#??# 2,2,1,1,7,1 +?..?##???#?.?? 4,2 +??????#????.#..? 2,3,1,1,1 +??#?#?#??##?????.??? 11,1 +.?.??????#.?????? 1,3,3,2 +?..#.?.??.??##???#? 1,1,2,7 +?????#.??#.?#??? 2,3,1,1,1 +???##?.#.?.????#???? 1,2,1,1,7,1 +.??#?.???. 1,2,1 +?????#??#.?....?? 5,1,1 +??##??.?#?.????#?##? 1,4,3,1,6 +??.????##?.#??. 1,1,3,1,1 +?????##?.#.#?## 1,5,1,1,2 +?????.?????..?.? 2,1,4,1,1 +?#?#??###??.#?#?? 8,4 +.#????#??#.?????# 3,5,1,1,1 +????##?###?.?#? 1,1,7,1 +??#??#??#????.. 1,4,6 +?#.???.??. 2,1,1 +.?#??##????? 2,7 +#??.##..#?..#?? 3,2,1,3 +???.?#?#??. 2,4 +?.?????#???? 3,2 +???.??#???#??##?#??? 1,13 +?.#?????#?.#? 4,2,1 +#?.???#.????.? 1,2,3 +????.#??.??.?#? 2,1,2,1,2 +????.?.?#?#??#?# 1,1,1,6,1 +..????#?.??? 6,3 +.??????????... 5,3 +.??#????#???.????? 10,1,2 +#?.???#?.??#? 1,4,1,1 +??#???###??.???. 9,1 +#?##.????.#??#?#???# 1,2,3,8,1 +.??#???????#?#??# 1,1,11 +?..??.??????# 1,1,7 +??.?#??..????..??? 1,2,1,1,1,1 +???#??##??????### 1,1,6,3 +?#?????###?#???. 2,8 +?#?#.????#..??? 4,1,2,1 +?.?.?.??#????..#..? 7,1 +????.?#?????. 1,6 +.??#.???????##??#?? 1,2,7 +..????????#?#? 1,2,4 +###?.??.????????.? 4,1,3,2,1,1 +?.?.??#... 1,1,1 +#????#????????? 1,1,3,2,1 +.?????#?.? 2,4 +?#?#??#?#???..#?#??? 11,1,1 +???#?.##??..#??????? 2,3,1,1,4 +.#?##???#?.?.? 1,7 +#???#???.? 1,4,1 +.???..??...?? 2,2,1 +???#???????..?. 5,1,1,1 +???????.?.#??? 5,4 +#.?????.?.#???.?#? 1,1,1,1,3,1 +##??##?#????#????.? 2,5,1,1,2,1 +??.#???#??#???## 1,13 +#?##.??.?#??#? 4,1,1,2 +?#???#?##????? 1,1,6,1 +#?.???#?#??#???#???# 1,1,1,6,1,1 +??#?#???.#?.#????.#? 5,2,2,2,2 +#.#?.?##???.#?? 1,2,4,2 +.???..??#?#? 2,4 +?#????#?????????#? 10,1,2,1 +.??..###???#?#? 2,9 +?.?????#???????? 4,1 +??.???#??.?. 1,5,1 +?????#??.?.?#??? 2,3,4 +??#.?..??#?#?.?? 2,6 +?#?#????#???? 1,1,7 +????###???#? 1,3,2 +??.#?#?????#?#??? 1,14 +?????.?#?????? 2,2,2,3 +#??..#?????#?? 3,5,1 +?#??#?#????.???#?.? 10,3 +#??#.????????????? 4,8 +??##?#??#??# 9,1 +???#???##?#??? 1,3,4 +.?.##?#?????.#? 2,5,1 +?..????#???#??????? 1,5,1,1,1,1 +????..#????? 1,1,1,1 +??##????##?##??## 12,2 +??#?###.?????..? 5,3 +????.???#?? 1,2 +???#?#???.???..#? 9,1,1 +?????#.?#..?.? 2,1,2,1 +??#?#..?#?? 4,1,1 +?.?.#????#?#??????? 1,5 +??????#??.?????? 9,3 +???.????.???#?#. 1,1,1,1,3 +??####???.#???? 1,6,2,1 +?#?.?#?.#. 1,2,1 +?#??#?#???#????#??#? 13,4 +???#???#?#?#??#????? 1,12,1,1 +?.???#??#?#? 1,1,6 +????.??????#. 1,6 +#??..?#?.?. 3,3,1 +?#?###?#.? 1,5,1 +????###???#??????? 1,10,1 +?????.?.?#? 1,1 +????#???#??##???# 2,13 +#??#??#..??..# 2,4,1,1 +??.??.????..??#.? 1,2,1,3,1 +#.???#???.????#???# 1,5,1,1,2,1 +?#????#?#??? 9,1 +????..??#?.???. 1,1,3,1,1 +???#.???#?.? 1,4 +??#??.???????.# 3,1,2,1,1 +.????????????#? 1,9 +?#????.#?.?#??? 2,1,1,2,4 +.?.?????#?..##.? 1,4,2,1 +?#????##.???#? 3,3,1 +??.?.?.???.?###??? 1,1,1,1,5,1 +.???#???????? 1,2,7 +???#.????? 1,1,4 +??.#???????? 1,5 +??.##??#.??? 1,5,1 +???#????#?????????? 12,5 +????.?#?.. 2,3 +##??#?.????#?????.? 2,1,2,2,2 +#..???#???## 1,1,3,2 +????????#?#?? 4,4 +#?????????????. 1,6,4 +??.??##??#??????# 6,4 +????#???????? 5,1,1 +?#.??#...??? 2,1,1 +???#??#?.???. 7,1 +??..?#?.?. 1,1,1 +?.????####????#??? 9,3,1 +?#.???.?#??#????? 1,1,2,7 +.???#.?#?.? 1,2 +#?#?#???????.? 3,8 +?.#????????.?.??.#. 1,7,1,1,1 +???????#????.?#. 10,2 +??.?????#? 1,5 diff --git a/day_12/part_2/src/main.rs b/day_12/part_2/src/main.rs index 572f5d7..17b4235 100644 --- a/day_12/part_2/src/main.rs +++ b/day_12/part_2/src/main.rs @@ -1,76 +1,71 @@ -use std::{thread::{self, JoinHandle}, time::Instant}; - +use std::collections::HashMap; use regex::Regex; -// i could just figure out a proper way but bruteforce is funnier -// but also its still way too slow so ill fix it tomorrow maybe +fn cache_key(cur: &String, instructions: &Vec) -> String { + return format!("{}:{:?}", cur, instructions); +} + +// this approach is entirely stolen from github, i just rewrote it in rust +// i'm not in a state to make my braincells operate at the level required for this task +// was enough of a challenge to even get this to work at all because rust is a fucking nuisance with basic tasks +// https://github.com/jsgrosman/advent-code-challenges/blob/main/advent2023/advent12.ts <3 +fn count_valid(in_str: &String, instructions: &Vec, cache: &mut HashMap) -> i64 { + if cache.contains_key(&cache_key(&in_str, &instructions)) { + return *cache.get(&cache_key(&in_str, &instructions)).unwrap(); + } + + let cur = Regex::new("(^\\.+)|(\\.+$)").unwrap().replace_all(&in_str, ""); + + let index_q = cur.chars().position(|c| c == '?'); + let index_dot = cur.chars().position(|c| c == '.'); + let index_hash = cur.chars().position(|c| c == '#'); + + if instructions.len() == 0 && index_q.is_none() && index_hash.is_none() { + return 1; + } else if instructions.len() == 0 && (index_q.unwrap_or(0) > 0 || index_hash.unwrap_or(0) > 0) { + return 0; + } + + if index_q.unwrap_or(cur.len()) < index_dot.unwrap_or(cur.len()) { + let with_hash = cur.replacen("?", "#", 1); + let with_dot = cur.replacen("?", ".", 1); + + let val_with_hash = count_valid(&with_hash, instructions, cache); + let val_with_dot = count_valid(&with_dot, instructions, cache); + + cache.insert(cache_key(&with_hash, &instructions), val_with_hash); + cache.insert(cache_key(&with_dot, &instructions), val_with_dot); + + return val_with_hash + val_with_dot; + } else { + if instructions.len() > 0 && index_dot.unwrap_or(cur.len()) == *instructions.first().unwrap() as usize { + let next_pos = index_dot.unwrap_or(cur.len()) + 1; + return count_valid(&cur.chars().skip(next_pos).collect::(), &instructions[1..].to_vec(), cache); + } else { + return 0; + } + } +} fn main() { - let start = Instant::now(); - let input_orig = include_str!("../../input.txt").lines(); - let mut inputs: Vec> = vec![]; + let input = include_str!("../../input.txt").lines(); + let mut result: i64 = 0; - let threads = input_orig.clone().count(); - for i in 0..threads { - let lines = input_orig.clone().skip(i).step_by(threads).collect::>(); - inputs.push(lines); + for line in input { + let mut cache: HashMap = HashMap::new(); + + // i fucking hate rusts lifetime garbage fuck this ownership garbage what is this + let mut parts = line.split(" "); + let field_in = parts.next().unwrap(); + let field = format!("{field_in}?{field_in}?{field_in}?{field_in}?{field_in}"); + let instructions_in = parts.next().unwrap(); + let instructions_str = format!("{instructions_in},{instructions_in},{instructions_in},{instructions_in},{instructions_in}"); + let instructions = instructions_str.split(",").map(|i| i.parse::().unwrap()).collect::>(); + + let res = count_valid(&field, &instructions, &mut cache); + println!("{res} - {field}"); + result += res; } - let mut handles: Vec> = vec![]; - for input in inputs { - let handle = thread::spawn(|| { - let thread_start = Instant::now(); - let mut result = 0; - let regex = Regex::new("#+").unwrap(); - - for line in input { - let mut parts = line.split(" "); - - // i fucking hate rust fuck this ownership garbage what is this - let field_in = parts.next().unwrap(); - let field_str = format!("{field_in}?{field_in}?{field_in}?{field_in}?{field_in}"); - let instructions_in = parts.next().unwrap(); - let instructions_str = format!("{instructions_in},{instructions_in},{instructions_in},{instructions_in},{instructions_in}"); - let field = field_str.split("").filter(|i| i.len() > 0).collect::>(); - let instructions = instructions_str.split(",").map(|i| i.parse::().unwrap()).collect::>(); - - // println!("{:?} {:?}", field, instructions); - - let unknown_count = field.iter().filter(|i| i == &&"?").count(); - for i in 0..i128::pow(2, unknown_count as u32) { - let mut current_field = field.clone(); - let mut pos = 0; - - for (j, spring) in current_field.clone().iter().enumerate() { - if spring == &"?" { - current_field[j] = if i & 1 << pos > 0 { "#" } else { "." }; - pos += 1; - } - } - - let field_str = current_field.join(""); - let pairs = regex - .find_iter(field_str.as_str()) - .map(|m| m.as_str().len() as i128) - .collect::>(); - - if pairs.len() == instructions.len() && pairs.iter().zip(&instructions).filter(|(a, b)| a != b).count() == 0 { - result += 1; - } - } - } - - println!("Thread result: {result} (Thread finished in {} seconds)", thread_start.elapsed().as_secs()); - return result; - }); - - handles.push(handle); - } - - let mut res = 0; - for handle in handles { - res += handle.join().unwrap(); - } - - println!("Final result: {} (After {} seconds)", res, start.elapsed().as_secs()); + println!("Result: {result}"); }