Day12
Section
test_cases =
String.trim("""
???.### 1,1,3
""")
test_cases =
String.trim("""
???.### 1,1,3
.??..??...?##. 1,1,3
?#?#?#?#?#?#?#? 1,3,1,6
????.#...#... 4,1,1
????.######..#####. 1,6,5
?###???????? 3,2,1
""")
test_cases =
String.trim("""
?#??##?..???.?? 6,1,1
?#?#?#????????. 8,1
??#?#????#.... 3,2
.????????? 4,1
???#????????#. 7,1
..????#?.???.?#?. 4,3
??#???..#?? 2,1,1
??.?#.?#?#?#? 1,2,4,2
???#?###????#??#.?? 1,13,1
.#????#.?#?##?# 1,3,7
?#??#??#????#???## 5,1,1,1,1,2
?#?#???.###?#.? 1,1,2,3,1
?.#.?#??#???? 1,1,3,4
????#?#???#.# 5,2,1,1
??#???#???##???? 4,7
???#?#??#.#..???? 7,1,1,3
.?.????#????# 2,4,1
?.?#??..????#.? 1,3,3,1,1
.??##??.????#? 4,5
?????????? 1,3
?..???.?#?. 2,2
?#?#.#????.?#??# 4,1,1,2,1
??????????.? 2,2
??#??#?.?#?? 1,2,2
#???#???#?.#?? 1,6,1
.??#??#???????????? 12,1
.???#?.??..#. 3,1,1
????.??#?? 3,1,2
?????#.#?. 1,1,1
.#?????????# 1,1,1,2
???.?????..??????#? 1,1,3,4,3
??.#??#??? 2,3
??#??#?.?.#. 4,1
????.??###?????##.?# 3,5,5,2
???#?????#???#.#? 2,8,2
???#?##????. 1,6
?##???????.? 2,3,1
???.#????? 2,1,2
???.????????.? 2,1
???.??.???? 1,1,3
??##??##?. 1,2,3
?..??#????#.? 1,2,3
????.???#?#?? 2,6
??.??????. 1,1,1
?.???????#????.? 4,6
.??#?????#?? 2,2,1
?#?.#?.#???.???##?# 1,1,1,1,7
...###???#?. 4,2
#?.???###????.?????? 1,1,7,1,1,1
.#??????.???.#???? 2,1,1,2,1,1
??#??#?#???????# 9,3
???#??#??#.? 2,2,1,1
.???.????????.#..?? 1,1,4,2,1,2
#??#???##?????????? 12,2
????????.??? 3,1
????.?##???##.???#. 1,8,1,1
.?????.???#????? 1,7
?????##???? 2,5
??????.????#???????# 1,13
#???.?#????#...? 3,4,2,1
?#?.##?.?..???? 2,3,1,1
?.#..???..? 1,2
..#???#??????#?.???# 13,4
.????#?#????????.? 3,6
???##??#??#?? 2,9
?.???##???..#??? 3,1
#?##???????#?#?#. 14,1
?###?#???#?#.#?? 7,1,1,1,1
.????????##???#?.? 10,1,1
##??##???? 2,2,1
?.??#??????#?#??.??# 1,6,4,1,1
.??..?.##???#.? 2,1,6
???????#.?????????? 7,5
?.?????#??.# 1,1,5,1
???#?#..??????##? 2,1,8
?.?.????##??..?? 1,1,5,1
??.?#.??.??..#?#..# 2,1,1,1,3,1
??#?#?.#???????.?? 6,4,2
.?#??#?.?. 3,1,1
?.?????#???????? 1,3,4
?#??????#?#??#??? 2,1,6,1,1
?#?????##???? 2,1,1,5
.?#????.?#??#?#??? 1,3,7,1
.#?#???????#???#? 1,4,1,7
??#?..???.?###? 2,2,4
??#??#???#? 5,3
.?????#????#???? 11,1
??????#????????# 8,1,2,1
.#??#?.#??#???.??.# 5,4,1,2,1
?.?????#??##?#?#???. 8,3,1
.?#??????? 2,1,2
.#?.?.????. 2,4
?.?.???#???? 1,1,4
?#??#..?#??... 4,2,1
??#?..???????.? 2,7
#?#????.##??? 1,1,1,4
.??##???##.? 9,1
?#??#?????? 1,7
?????.?#?.?. 1,1,3
.??#?.????##.?.??.? 1,4
???.???.??#????? 1,1,1,7
?.???.###?? 1,3
??.#????#?. 1,6
#??#?..#????? 1,2,1,1
?#??????#????.????.? 7,5,4
?.??#..??.???? 3,1,1
?????????????.#? 1,2,6,2
??##?????????##????? 7,1,2,1,2
.?#???#?#??#?? 1,4,1
##???#?.#?#??????? 4,2,1,2,1,1
?.#??##?#??.???#?? 1,8,2,1
..?#.????? 1,1,2
#?????.??.??#?#??? 5,2,6
??#?#????????????##? 5,5,1,5
#???.?#?#?# 2,4,1
?#?.???#.?#??.? 1,1,1,4,1
.#?.??#.?##? 2,1,1,3
..???.???#????#??. 2,2,2
?#?.????#??##????? 2,1,11
??.?????.??##?. 1,4,2
?...#??#?#?##?.????? 1,1,8,1,1
.?.?????.?###.??? 1,4,3,2
??##??.#.? 4,1
#?.##????#?..#.??? 1,8,1,1
???????#???##????#?? 1,1,3,2,5
??.?????#???.?.????. 1,8,1,1,1
?????.????????.### 1,1,2,1,1,3
?#.???????#??????.# 2,6,1,1,1,1
????###??#?..#????#? 2,7,6
??#????????##?.? 5,1,4,1
#?????????#?###? 1,1,1,1,5
..??????#.?? 1,1,1,1
?.??????.#?? 2,2,1
??#??..?#????. 3,5
.###..#?#?? 3,4
???#??.?.??.????## 2,2,4
??.??#?.?.??#??# 2,2,1,3,2
?#???????? 3,2
??#####???????##??? 9,4
??????#?.? 3,3,1
#....??????.? 1,4
??#????.???##. 1,1,5
###?.?..#??????#? 3,1,5,3
.#.??.#?#?.#??#?...? 1,1,1,1,5,1
?.??????#.?#? 1,1,2,1
???.#?????#????#?.? 9,2
??????#?##???#.????? 12,1
.???????#? 2,1
?.?..#?#????????? 1,1,4,4,1
???.?.#.?? 1,1,1
..#?.????#??#?? 2,2,5
?#.#??#???.???# 1,1,4,1,1
???.?###?.??? 3,3
#?.?..?#?##. 1,1,5
?..#??#?.##. 4,2
??????#..????##??#?. 4,10
??????##??#?#?#?.?#. 3,10,1
.?.#?????????? 3,3,1
?.?#?#??##?? 1,1,2
.???#?...#? 1,2
?..????.?#.??????? 1,2,1,1,1,3
.??????????## 3,6
???????.??#?.. 1,4
????.??.?.?? 1,1,2,1
?#?##??##?#?.?#?? 11,2
?.????#??.?? 1,2,1,1
??#??????? 2,1
.??????.???#? 2,4
??#?#?.?.#?. 4,2
?#?#???.??? 1,3,1
????##???#?????#???. 16,1
???..?.??? 1,1
???.?????#????? 2,2,1,3
.????.?#?#?##?#? 2,8
.?????####? 1,5
??##??.?###.?# 2,4,1
??.??.??.? 1,1
??#??????? 2,1,2
??????##??#?. 1,6
?#..?##.#??.#?????? 1,3,2,5
???.#???##...? 2,2
?#..#..#?. 2,1,1
??.#???##??#?????.? 1,3,5,1,1
?#?#??.????. 4,1,2
?#.#.?##???# 1,1,6
.???????###????? 2,4,1,1
??#??##..????##.? 1,1,3,5
?##?#?..?????.?. 5,1,2,1
?????????.?????.? 4,1
?#???#.???? 6,1
#?.#?#????###?.???? 1,1,1,4,1,1
#.????##???#.?????? 1,9,4
#?#???????#?##?.? 3,1,1,5,1
?.?#.??????#?? 2,5
???.????##?? 2,7
??#????.??.????? 6,2,1,1
???..???.?????#. 1,2,3,1
??#?#..#?#?#????## 3,1,9
??.#??????????.. 1,1,8
??#??##??#. 6,2
.???.?##??? 2,4
????.??.????##??.??? 3,1,6,1,1
#?.##?#?#.?.?## 1,6,1,2
?##??#??.#?.# 2,1,1,1
???????#?.?.?? 8,2
#?????#??. 1,6
?#??#?.???? 5,1
##?????.????. 4,1,1
???????##???.?#?.# 6,2,2,1,1
?#?????#????? 3,5
????????## 1,1,3
????.?????#? 4,2,3
??.????????.??###.. 1,3,3,4
?????????#?.# 1,3,4,1
.##??????#???? 5,6
????#??#??.??#?.?#.# 8,1,1,1
?#??????#??????? 2,4,1,2
#??.?#????.??? 1,1,5,1
?????..??? 3,1
?#?.?##.????.?..#??? 2,3,4,1,1,1
???.?????????? 1,10
?##....?#?.. 2,3
##?????#?.????#?.?. 3,3,5,1
##??.??.#..???. 4,1,1,1,1
#???.#?????. 1,1,5
?????#?#?#?# 2,5
?#?#?.????? 3,1
????#?#.?. 3,1
?????.??#?????? 1,1,1,5
???#?##???#?#.? 11,1
?#?#?#..??#??.?#??.. 6,1,3,3
?.???????. 1,1,1
#??#????#????.???#? 2,4,5,2,1
??##????.#????? 6,1,2,2
????.?####? 4,5
??.?..#?#????#???? 1,1,4,5
?#?????????##?#??? 2,2,9,1
.??#?##?????# 5,1
.##????????????#. 2,5,2,1
.?????#?####.##?.# 11,3,1
???????.?..??.?. 3,1,1,1,1
?##.???.??.. 3,2,1
???????.??#???? 3,3
???.???????? 2,4
?.?#?#?????.??#. 1,6,1,1,1
?????????#???? 1,3,6
???#??.#?? 1,1,1
.???..?.?.????? 2,1,1,1
???.??#..?#??#?#?#? 1,3,10
??#?#??##??#???..# 1,1,5,3,1,1
???????#..?#?#?#?.#? 6,1,2,1,2,2
???##.?#.? 3,1
???..???.#?.?????? 2,1,1,2,1,2
#???..?????.? 4,1,1,1
??.??#?#?????? 5,1,1
??#?.?????? 3,2,1
????.###??#??##.? 1,10,1
#?####?##????.#.# 1,8,1,1,1
##?????.#.#. 2,1,1,1
?????#???##???????? 3,1,10,1
?#????.???#?#?? 2,1,6,1
??.???????# 1,3,3
?.???#..?#???.??#?.? 3,2,3
?????.???#?#.# 3,4,1
#.??#??.#?????..#??? 1,4,1,3,1,1
..??.?####????.???. 6,1
?..??##?.?.???#??#?? 1,1,3,1,1,5
??.??#?????.???..? 2,3,2,1,2,1
?.??#???????????#?#? 5,11
.????#??#???.??#???? 10,4
#?#?.#?#???..?. 3,1,1,1,1
??#?.?.?????? 4,1,1,2
??#?.??.#? 1,1,2
#?#?????###?????? 1,2,10
?.??.##???#?????? 1,8
#??..#.?.#. 2,1,1
.#?????????.? 1,5,1
?#?#??.???????????? 5,3,3
???.##.?.???.. 2,1
???.?#??#?????#????# 1,2,7,1,1
.##.?.??#???#?#??.? 2,2,7,1
????????#?##. 2,5
#??.???#.?? 1,4
?.#?.?.????? 1,1,1,1
?#?.#???#?#??#?# 2,12
.??????.??????#.# 5,1,1,1,1
?.???.?..?? 1,1
??##?..?????#???? 3,6
.????.##..?#??. 3,2,4
?##?.?###??? 3,5
.?.?#?##???????????. 8,2
?????#???????## 1,1,3,1,4
?.?????#?#?##?? 2,8
.??????#???.?????#? 1,8,6
?#??#??#.??##???? 2,5,5
?????##????? 7,1
???#?.?##.##? 1,1,2,3
?.#.##??##????# 1,1,2,5,1
.#??????##??.#??#?? 1,3,3,1,5
?#??????#??.? 5,4
??#?..?????. 3,1,1
????#??.?.??? 6,2
??#?.?.??.?.???.?? 3,2,1,1,1,2
?#?..?????##???????? 3,1,7,1
.???..???? 2,1,1
...?#??..?????? 3,3,1
??????????? 2,1,1
??????#.???.???.?. 2,2,3,1,1
???#??#..???#????.#? 5,1,5,2
.###???#?. 3,2
??.?..?????????? 1,1,1,1,5
?????#.???? 6,1,1
?.?#?...?#?????????# 2,11
#?#???#???#?##??? 5,5,4
?#.??#??##?##? 1,1,2,2
??#?#??.??.??.?.# 1,4,1,1,1
????##??#?? 4,1
????.?#?#?. 1,2,1
.???????#? 3,2
???.?.###? 2,3
.#.#?#???.?? 1,1,1,2
.??..#??.#. 1,1
??#?.?#?????#.?#.??? 2,7,2,2
?#?????????.. 4,1,1
?..#??????? 1,2,3
?#??..?#?????# 4,3,1
??.???#??? 2,2,1
#?#???.#??###???.# 1,1,1,1,6,1
###??#.????#???#. 6,1,5
.????.???#???# 4,6
?.??#.##?#???#?# 3,4,3
?????.?.#? 1,2
?.?#????????.. 5,1
#..??.??##??.?? 1,1,5,1
#?????#?#????.?.# 4,5,1,1,1
???.?..????. 2,2
?.##???###??.? 1,2,6,1
???.?#???#????.# 1,2,2,1,1
???.??#?#.????.??? 2,1,1,1,1,2
..?#?#??.????#?.? 4,5
??##????##????##??#? 10,1,2,2
#?#.?#??##.??##?? 1,1,5,4,1
?#?.##?.??#??#?.? 1,2,2,2,1
?.??.????. 1,1,1
??#??.?#??????#??# 1,3,6,1
.?##.???.?? 2,2,1
#?#?????#?.??#????#? 10,2,4
????.#?#??.???? 4,4,2,1
???????#??##?? 2,4,3
?#?.???.?.. 1,2,1
??????.????? 3,1,2
#?.???##?#?#??#?# 1,1,10,1
?#????????#??#?.? 2,1,4,2,1
??.?#..???#??.? 2,2
?#????????????..# 6,2,2,1
???#??.??#?#???? 1,2,9
?##??#????#?????# 3,1,1,8
?#?##??.?..?. 7,1
????????#?? 1,1,1
.?.??.??.? 1,1,1
????????????????? 2,9
#???.??#?#?????.???. 2,8,1,2
????????.#. 1,5,1
.???????.????? 3,2
#???####?#???#??#. 2,7,6
..?###?#???? 4,3
??????????.?#? 2,3,1,1
????????.#????????? 1,1,3,1,4,1
????..#.??#.??#. 4,1,1,1,1
??.?#???#?..?. 1,7,1
????...#?.??#?#.? 1,1,2,3
???#??????#?.?#.#?# 7,1,2,3
..??.???.??###?### 2,9
#??#?...?#??? 5,1,2
.????.??#?.? 1,3
?????#??.#????#???# 2,3,8,1
.?????????????#??#?. 1,1,1,10
??????????###. 2,2,1,4
???.?.??..?#????#?#? 2,2,9
?#??.?#?.###?.???? 4,2,3,1,2
?.??##??#? 5,1
???#??##?#??.###?#?? 11,3,3
?#...??????#. 2,1,1,1
#??..#?#??????###? 1,1,1,3,6
????.???#?????????? 1,1,3,1,2,2
??????#???? 5,1,1
???#.??????#??#????. 1,1,3,8
..????????????????? 8,2,1
???#.?#?.#.. 3,1,1
??######?#????# 10,1,1
?.#?..??????#?#??? 1,1,1,8
?#???.??##.? 4,3
????#?????.# 2,2,1,1
.?#??????# 5,1,1
.?????...?#????? 1,1,1,5,1
??###??#?????#??? 11,3
.????.???#?? 1,2,3
?.???#?????#?.??? 1,1,8,1,1
?..?..???#??.#?? 1,1,6,1
#??##??#?.#?#???? 1,6,1,1,1
??#????.??# 3,1,2
??.???###??#????# 1,6,1,1,1
.????#??##?? 2,1,3
#.?.?.?#??#??????? 1,1,1,6,3
##??????#..?? 7,1,1
?#?#?#.?.?#..? 2,1,1,2
???.??.#?#?..?. 2,4
??##??????#?? 6,3
?#???.???. 4,2
???#???????##??#?? 1,6,8
?.?#??#?.#??? 2,1,1,1
.#??.?#???# 3,2,1
.###????#???.?.??# 11,1,1
.?#???#????#?? 2,9
??##?#??.#?? 5,1
?????#?#???????? 1,1,1,2,2
??#???#.??????#?# 6,1,1,1,1
??#??##?#???? 4,4,2
??.??#??##?#.#.??#? 1,1,1,5,1,3
????##?#.?##?#?.?#? 3,4,5,1
#..??.?##? 1,2,3
?#?.?????#..?#?????? 1,1,4,2,5
?.???..?#.????##.?.? 1,1,4
?.???????###???? 1,5,3,2
.#???.#.?. 1,1
.?#.??#??###?# 2,1,8
??.?????#?. 2,1,1
?#???????##?#?..??.# 1,5,5,2,1
??????#?..?.????## 7,6
?#?.#??#.????#??.# 2,1,1,3,3,1
??.??##??.???..??.?# 1,4,1,1,1,2
#?#?#..??.#????? 5,1,6
.?##????..?.?.. 3,1
?.???????????? 1,1,5,3
???????...?.?????? 1,1
.?#??..??????#????? 3,9
????##??.. 4,1
.?#?.?????#??##??#? 3,1,3,6
??.#??????#.?????#? 2,5,1,3
?????.??????#??.?? 1,3,9,1
?..?????##?#??#?? 1,2,8,1
?????#?##?????.? 1,1,5,1,1
?????#??#.????.???. 1,3,1,4,1,1
??#???#????#?#?.???? 1,2,2,6,1,1
#???#?..?????#??? 2,3,6,1
??.????#?#???.??.# 7,1
??##?????# 6,1
????#?#?#??.??.?? 7,1,1
????#?#??????????? 11,2,2
?##?.????. 3,2
.?.???###. 1,3
.????#?#.?#???.?? 5,1,2,2,1
???.?#???????##??? 1,1,1,1,8
.????????????..?.?? 5,5,1,1
??#.??????.#?#. 1,1,5,1,1
#???.##?#????#???. 1,1,2,7,1
?#??.?#??. 1,3
??..??##..? 1,1,2
?#??.????????? 1,1,2,4
???#????.???. 5,1
??????#?##??#??#??.? 2,10,1,1
#???##???#..#???#?? 3,2,1,1,1,4
?.#?.??.?? 1,2,1
??.?#????????#? 2,2,5
??????.???#?????? 1,1,3,1,2
??.?#???.?#? 1,1,1,2
.?.???#??????? 1,4,1,4
?#.?.?###????#?? 2,9
?????..????????????? 1,6,2
#??????#??..??#??# 1,2,4,5
?.??????#??# 1,6
.???.???????#????? 2,7,2
#???.#?#???##?#??.?? 2,1,1,6,1,2
#?.?????#.?#.#??#. 2,6,1,1,1
##????#??.????? 3,1,1,1,1
.??##?##?#??.???? 3,2,1,2
????#??#???#???..#. 6,3,2,1
??.???#?#?#??. 1,1,5
..??#.????? 3,1,2
???.#.????.?## 1,1,3,2
????.?#..?.? 2,2
.??.???##? 2,1,3
????#?#?#???.???# 12,3
?????#?.?? 2,1,2
??####??.???????##? 7,1,3,2
??#?????.?#.? 1,1,2
????#?????##.??? 1,10,2
????.????. 1,2
???####???????## 9,4
?#???#.?.?#?##?? 1,2,2,2,1
???.???#...#?? 2,2,1,1
..#???.?#???.??.?## 3,5,3
..??#?#?.?.??#??#.? 6,6
.#???.##?????##??? 1,2,12
?#?.?#??.#. 2,1,1
.#???...#? 1,1
??#.???##??## 3,2,2
?????#???????? 1,2,1,1
#?#.???.????.? 3,1,1,1
?????#????#?.?. 3,1
.?????..???#? 3,1,4
???#.??.?.??? 2,1,1
###?###??#?#?. 7,2,2
??..#??#.#?#?##? 2,1,1,7
?????##??..##?#?# 7,6
.#????#??#?? 1,1,2,1
????.???#???? 1,1,1,1
???#.??????????.??? 1,1,4,2,1,2
?????.#?#?.?.?#???#? 4,1,2,3,1
.#???#???#??? 1,10
?..????#???????.. 5,4
#?.??#???????.??? 2,4,4,1
.???????.??#???? 1,1,1,5,1
??#?????###????????? 10,1
.#?????????????????? 5,10
#???#?????#??#?.?..? 2,11,1
???.?????.??.. 2,1,2,1
??????#????? 6,2
???.??#????#????## 1,5,8
?#?#????..?#??.? 4,1,2,1
????#???#???? 9,1
..??.?##???#.#??#### 7,7
???#???#???????##.? 2,7,3
.?????????#? 1,1,1,2
??.??#????#. 1,8
???#???##..####?? 2,3,5
##?.?.#?.???.?#??. 2,1,1,3
.???#??????. 4,1,2
#??.????.??#?.??# 1,1,1,4,3
?#?##??.??##?#??? 7,7
?.?#???#????.#?# 1,3,2,1,3
#?.?#.??????.?? 2,1,4,1
????#???????#?? 4,6
.?????????????#.?? 6,4
??#??????#??.??#???. 10,5
.??..??#??? 2,1,1
???.????????#? 1,1,3
???.???.???? 1,1,1,3
????#????. 6,2
??#.?#?????# 1,1,3,3
?#.?.?#?#???#?#???.. 1,12
?????.???## 1,5
????..#??. 2,1
#??#?????#?#??#.. 1,3,8
????#????.????#?.? 1,5,3,1
#????.??#.?. 3,1,3
..##??...##?.?#?.? 2,2,1
?##????#.??#. 8,2
#..??##????? 1,4,1,1
?.?..??????###??..?? 1,1,5,3,1,1
???.??##.??. 2,3
??.???#????#??#? 1,1,1,3,1
???#???#?????#?. 4,7
?.?????#???????#? 8,1
#?#???????#? 1,4,2,1
??#?##.????#??? 4,4
?????.???#????#???? 1,1,5,1,2
?.?##???#.?#?. 1,3,3,3
??.?#.??????? 1,1,5
?#???#??????.#?# 6,2,1,1
???.?????#??.???? 1,1,4,1,1
?.?#?.??#??#??#.?? 2,7
??#??????. 2,1,1
???????.?.?.? 1,2,1,1
??#????#?..?????#??. 1,3,2,1,2,3
?.#?..???. 2,2
?#.?##.??#?#??..? 2,2,6
??.?..???##. 2,4
??..??#?..?#?. 3,1
?.#?##?##?#.?# 1,9,1
???????????. 2,1,1
??????#????#????### 1,1,1,1,8
.???#??.?. 4,1
.#??###???#??.??? 1,9,1
##???????#????. 4,1,4,1
#???#?.?.??. 2,1,1,1
???#.?????? 1,4
???###..##? 4,2
#????..##.? 4,2
??###.??#?. 4,3
.???..?.?????????? 3,9
#.???#?#??#.???.. 1,3,1,2,1
????.#???#??## 3,9
????#??.????. 2,4
.##???.?.?# 5,1
?.?..##???##?.#.# 1,1,8,1,1
?#??.???#.???#?????# 3,1,1,9
..?????????##??? 7,3
???.??????..?#? 1,1,2,1,2
????#????#??????. 1,1,1,5,1
.#?#???.??? 6,1
?##?#???#?#?.??.? 11,2,1
????.#???#?????????? 1,1,1,7,3,1
???#????????. 3,4
???##?.??.???.?? 2,1
????#?#?#? 1,3,1
.#??###?.#???.#?#??# 6,1,1,4,1
??#?.?#???.??#???.#? 4,5,4,1
?.?..?#??????.?#?#?. 4,4
??#?##????###? 5,4
?????#?#?##?#?#? 1,1,1,1,6
??#??##??.?.???#???? 7,5
.#????.?????.#.??? 1,1,1,1,1,3
?.??#?????????? 1,1,1,4,1
?#??.?.???##??##?# 1,1,1,8
???.#?.?????? 1,4
?.?..???????.#?. 1,1,4,1,1
??#?.?#?##? 2,5
???.????#??? 1,1,1
??#.???#???#?#?? 1,1,11
?.??#????.?####. 4,5
.????#???#???#???# 1,13
???#?#??????? 7,1,1
???????#??? 1,3,1
?#.?#??#?.#?? 1,6,1,1
??#?#?????..??.# 10,1,1
????????.#?#????.?? 1,4,1,1,1,2
??.#?????#???.?# 1,1,1,4,1
?#..?#?..?.???#?.?# 1,3,1,5,1
?.??.???#?? 1,4
.????#??????#??? 1,11
#????.????. 4,1
???????.????????? 2,4
????????????.. 2,1
?????.?.?.#??#?#???? 5,1,1,6,1
??#?#?#??##.# 6,3,1
?????#???. 1,5
??.???.??. 2,2,1
#???#????? 1,2,1
???#???#??###??..??? 1,1,8,2
?.???????#??#????# 2,11
????##.?.#..?? 5,1,1,2
.#..??#???#?#? 1,1,7
?#??????##?##???.? 2,1,8,1,1
.?###??#..???.? 3,2,1
???#????.???????? 7,2,4
??????.???#???#?.?.? 3,6
?#?.??#.?. 2,1
?.????.??.???? 1,2,1,3
?##????????#? 4,1,1,1
?.???????#?#?#??? 2,7
?#?##????.??.?#?#?.? 5,1,2,4
??????.??.??##??#??# 1,1,1,1,8,1
?###?.??.#.??#? 5,1,1,1,1
???.#????#???? 1,6,1
..?#???#?.?.?????#? 3,2,1,1,1,1
???##?#?#.?#?? 1,4,1,2
????#???.?.???##?? 1,6,1,6
?????.????????#.???? 2,1,1,2,2,2
?#?..?.?#??.?????? 2,1,3,5
???????#?#?.#?.?? 10,1,1
?.????.?.????? 3,4
??##??##..... 1,6
???#.??..#???### 1,1,2,2,3
#??#??#??#??#?. 2,1,1,6
?????#.???.??#?#??? 2,2,1,6
.??#?#????#???#??? 6,6
.??#???.?.#??????.?? 6,7
????.#?#?#?###? 1,1,1,3,4
?#??.???????. 2,1,3
???????.??.???? 3,2,1,1
??.?.????#??#??????# 1,1,12,1
?#????.?#? 2,2,2
.#??#.????#??.#? 2,1,1,3,1
???#?#??.??#?. 1,1,1,3
.?#?.??#???? 2,2
???????#?????????#?# 1,1,3,9
??????.??#?? 1,1,1,1
.?.???#???##?#??? 1,8,1,1
?#?#??.???? 4,1,3
..???????. 1,1,1
?.????#.????????##? 3,3,2
??#?????#???? 3,1,4,1
?????.???#????? 2,1,1,2,3
?#??.?.??#???? 3,1,5,1
?.????????#???#?? 1,8,2,1
?#??.#?#?###??#??? 3,1,6,1,1
#?#??????#??.?? 3,1,1,2,1
.??????#???.??#. 1,1,4,2
.?#?..???. 2,1
##.#.#?#???#??# 2,1,4,4
???#?????#?#?????#?? 2,5,6
???#.?#???????. 4,1,1,1,1
???##.????.?.?????#. 4,1,1,6
?.?.??..?.???#?????? 1,1,1,1,6,1
?#?????##???. 2,8
##???#?##?.??????? 9,2,3
?.????.??##?? 1,2,5
???.????.??? 1,1,2,2
??.?.?.??#?#???# 1,1,1,6,1
.?#?##?????????? 8,1,1
?.#??.?????????.???? 1,7,1
????##???..?.? 2,2,1,1
.?##???#???? 9,1
???#????.?#?.?? 6,3,1
?????..??###???#??? 3,11
???#???#??.?#.??? 1,1,4,2,2
????.?###?#?? 1,6
#??.?..?##?? 2,1,5
??#?#?#?##??###?#? 4,11
###??.??#??#?#??.??? 3,1,1,6,1,1
??????????#?#???.# 2,1,1,4,2,1
???????????????? 1,1,1,5
.?#?##??..?????. 7,3
.?.???.?#? 3,2
##????.###????#????# 2,1,4,3,4
??#?#??.#???.? 7,3
?????#?#?#???????# 1,6,1,1,1,2
?.??#.?..?#?. 2,2
?#??.??#?????? 2,8
?????.?.??##???#??#? 1,1,1,12
??.??????? 1,5,1
###??????.????. 6,1,3
??#?.???????? 1,1,3,2
?????#?????# 2,4,1
#.?#????????.??. 1,3,1,3,1
?#???#???#?. 3,5
???.????#?###?#?#? 1,1,1,1,1,7
#...?#??#?..# 1,4,1
##???????.???#?##.# 4,1,1,4,1
???..??... 3,2
???.????????.? 3,4,1
???.??????#??.? 1,1,8,1
#????.????????##. 3,1,2,7
.????????#? 1,3,2
????#?#??????#???? 10,4,1
#????##?#?????##.? 1,11
?.#?..?#????###.??? 2,9,2
.???#?#?#??????#? 1,5,6
??#????.#???# 5,1,1,1
.?????????.???. 2,3,1,1
?.#?#??#?#?..# 9,1
?#?.?#?#??????#.#? 1,5,1,1,1
.?#?###??.????#??? 7,1,3
???.??##?.. 1,3
#??????.?#???.#?? 1,4,2,3
???###????..? 1,3,1
.#??.?#??...? 2,3,1
.?.#?.?#?? 1,3
?.?????#???.#?#?.? 8,4
.?#?###??##? 6,3
#????#???#???#??#? 3,1,10
.#??#?????#?.#.??##? 1,2,1,1,1,4
??#???????....#?? 9,1
#...#???###?##??. 1,1,8,1
????.?##???#.??? 1,1,4,1,1
#??.???????#???#. 2,1,3,1,3
.#?#??????.?. 8,1
???#?????????##.?.#. 14,1,1
.?#??#???. 5,1
????.?#???.#?#.? 2,3,1,1
?#?#???#.?.?#????? 8,6
?#?#.???..?#?? 3,3,4
.???????##?. 1,7
?##?????????.#? 2,2,2,1,1
??#???.???????# 1,3,3,2,1
??..?.?#?? 1,1,2
#??????.?#.? 1,1,1,1
??.??????..??? 6,1
???#.??#?#?.# 1,1,3,1
#??.??????##?###?#? 1,14
????????.???. 1,5,1,1
.??#?#?????#?? 5,1
#????.#?#.??#???? 1,3,1,1,5
?????#?.#..???. 2,4,1,1
???##?????????.. 8,2
?..?.????? 1,1,1
???..#..?.??#. 1,1,1,3
..???#????.?#??#?? 5,5
?#??#.??????.?? 5,1,3,1
#???#.#??#.??#?#. 3,1,4,3
???????#?????#.? 3,1,2,4,1
??...?#?????????# 1,4,6
???.#?###??#???????# 1,1,12,2
??.#?.?..??.?. 1,2,1
.#?#?.??#???#??.?## 4,1,2,1,3
#??????.????#?#? 2,1,2,3
???#??.???????#??? 2,4,2
?#?.?..#???.?#????? 1,1,1,6
.????#?#??##?#.? 1,11
??#???##????#? 6,1
????#????????????.#? 5,1,3,2,1,1
?.????????.#?.?.??# 1,6,1,1,1,1
????#??#?#????.? 1,8,2,1
##?#.??#??? 4,2
.#.?????#????. 1,2,5
?###??##???. 3,5
???????#..????#??.? 2,1,6
???#?#????#. 6,1
?.??#.????..?? 1,1,3,1
???.??.???# 2,1,2
##.??#?#???. 2,6
#??.?#.??#?#?#.???? 1,1,2,6,1,1
??.?.??..?.? 1,1,1,1
.???.##???? 2,6
??.??#???#?#??????#? 2,11,2
##??#?.??. 2,2
#.??#??#??????.?. 1,1,10,1
???#??#???.##?.? 3,2,1,2,1
.?#.??#...?#?? 1,2,3
??????????????#?? 2,11
.?#?#.???? 2,1,1
#?##?#??#?#?. 1,7,2
??????.???? 1,1,1
#??.???#??.??#? 1,1,1,1,3
#???????#???.? 4,4
?#?.??..#??#??? 3,2,1,1
??.??..#?.#????.?? 1,1,2,5,1
?#??#???.???.??? 7,1,1,1,1
?.?????.???? 1,5,1,1
????#?????.??????? 1,5,1,1,1
???????##?.??.? 3,5,1
?#.??????.???? 1,2,1,3
???#?#??.???? 1,4,1
?#????.?#.???# 1,1,1,4
?.?#??????.?## 5,3
????#?.?#? 2,1,2
?????.?.#??? 4,1,1
???#??#??? 7,1
#?????.?#?##?# 1,2,6
?.??.??.????#??? 1,1,2,5,1
..?###.?????#?#??. 3,9
#?????.????.?#?? 3,1,1,2,3
.????????.?#??#? 2,1,4
?#??.??????.??.# 3,5,1,1
???????.??.??? 4,1,1
?????#??.?#?#?? 3,5
?##?????.??#???? 2,4,1,1
??.????.?????. 1,2
????????#? 1,3,1
.?????????..#??#??.# 2,1,1,6,1
??..????##?.???.#.?? 1,7,1,1,1
????#?.#??##????? 6,1,6
?#.#??#?#??????# 1,1,8,1
?.?.?????. 1,1,5
?#????#?.???.?. 1,1,1,3,1
.??.??.##??#?? 1,1,7
?.#??????#.???# 8,2
?.?##?????##?.??. 6,2
?#???#.#?# 5,3
?.??????#??# 6,2
?#??#????#?.?..?# 5,1,1,1,2
????###?##.???.#?#?. 10,4
#???#???##?? 2,8
#??#?##?#?#..?## 7,1,1,3
????#?????.?.#? 9,1
#.?????.??.????? 1,2,1,1,3
?.?#?????#??? 1,1,1,2
??#???.??#? 4,1
???????#??#??.?# 1,1,7,1,1
.??.???.#??#?#?#?? 2,8
???##.??#??????.? 4,2,1,1
#?.????#??????????? 1,8,1,1,1
???????????????? 5,7,1
.?.?#???.??# 1,2,2,2
.??##??????? 5,1,2
??.???#???##??#??#?? 2,1,1,9
?????.??.??###?#.? 1,1,1,1,7,1
?.?###.???#??.?.#?? 1,3,2,1,1,3
?.??.?##?????? 1,2,6,1
?#?#??#?##??????##?? 10,1,1,2,1
#?.??.???#?# 1,1,1,1
.???.?????????#?? 2,1,9
?????#?????#?.#?#?# 1,1,1,3,5
???#.#?????. 1,1,1,1
??..??#?.##???#???? 2,1,1,6,1,1
????????#?? 1,1,5
?????????# 4,3
??###?#.#???????. 6,5
?.#??#?.?#. 2,2,1
?#???#??#??#?? 1,2,2,1
.?..##??#??.? 1,6
??#??#?#.??.???? 8,1,1,1
??####????????? 5,1,1,1,1
#??????????? 3,3
??#???##?#?.#?????. 9,1,2
???##???.# 7,1
???.?#??.? 1,2,1
?.????.???? 4,1
#?#?#???#? 5,3
#???????.# 7,1
??##.???#????? 3,1,4,2
??.???.??. 2,1
???##?...?????# 5,1,1,1
.???#???#? 1,1,2
??.?#??#?#.???.??? 1,7,1,1
##????????#??#?.#?.? 11,1,1,1
??.?#??.#..??? 2,3,1,2
#??#??#??. 1,1,3
?#?#???#????? 6,3,1
??#???#???????? 3,6,2
?##?????#?#??##???.? 3,1,9
???.???.?. 1,1,1
###??????? 4,4
.???#?????????.?. 11,1
???#.?.###??#?#???? 2,1,1,3,5,1
?.#??#???#???#?.#?? 1,1,11,2
??.?.??##?##.??? 1,7,1
???.???##???????#??? 3,9,3
?????????????#?.? 5,2,4
?.?????#??????#? 1,1,4,4
???.????#?#?#.#? 1,1,2,5,1
.?.??..?#???#?? 1,2,4,1,1
??#?..?#??????? 1,7
.#??#?#??.?#?###???? 7,7
#??#.?????##. 2,1,1,2
???#???????????#? 4,1,1,4
????###?###??? 1,10
???####?#???#??#? 13,2
?.?..???#?. 1,4
?.#?#.?.#??.?##???#? 3,2,6
?#???.??###.? 1,5
????????.#?.??. 2,1,2,1,1
?#?#???#.#?#?? 2,1,2,5
#..#??????#..#?? 1,8,1
???..?#??.? 3,4,1
????###?#?.?..# 3,6,1,1
.?#.?#?#?##.???. 2,1,4,1
#???#???#?#?##???#?. 15,1
??????.?#????.??. 1,3,1,2,2
?#??????#??#??..? 8,3
??#?.???#?##????.?? 1,2,1,7,1,1
?.???.??##??. 1,1,3
?????????? 2,6
??.?#?#?#???? 6,1,1
.???##??#?.?. 8,1
???#????####?.??#?.# 12,1,1,1
?#??##?#?#?????##? 9,2,3
#?????.??? 1,1,2
?##?.???#..?????? 3,2,2,2
.##?#??.???? 4,1,1
?#.????.?## 2,1,2
????#????. 1,2,1
??#???.?#.??# 5,2,3
#???#.????? 1,2,4
??##?????.?.?#?.? 4,1,1,1,1
??.??????? 2,3,1
.??.?#??????????? 1,12
???#####.#???#??# 1,5,6,1
???#?????.?#??#?.?? 1,1,2,2,2,1
???#??##??.#????#?? 2,3,3,2
??#???.##. 2,2
##?#?#???????##?#??? 8,5,2
?.????#.?#??? 5,2
??#??##??#.??#?#? 6,2,1,4
?????????##?. 2,4,3
????#?.???.?? 2,2,1,1
?.##?#????#?#???#?? 1,15
#??#??#???? 1,6,1
???.?###????.. 2,5,1
?.??????#?.?.? 2,2,1,1
???#.??.?#???????#. 3,1,2,1,1,2
?.???.#??. 3,2
##..??.???????. 2,1,2,1
.??????##?.?.#??? 3,2,1,3
?????.????#? 3,1,1
???????#??.?##?##??? 7,3,3
??#..?##?#? 3,2,2
?.???.???#?#?? 2,7
##?#?#?#???????.? 6,2,1,1,1
#.??#?#?#??? 1,7,1
.?.???#####? 1,8
???????.?..?. 2,1
?##?.#???????.? 2,3,1,1
???..?.?#???#??. 2,1,1,5
.#?????#?#???? 1,3
????#?..????...?? 1,3,2,1
.?#?#???????? 5,6
.###?.???#??.?????? 3,3,5
?????..???????????. 1,3,3
???????.?#??????? 1,1,2,8
#??.#???#???. 1,1,6,1
?#?????#?????? 8,3
#???#?#?..? 1,5,1
?#?.??????????#?? 3,2,2,2,1
?#?.#???#??##??.??? 1,1,1,1,5,1
?.???###.??#????? 1,1,3,1,6
???##??.?? 5,1
????#???#?????? 1,11
#?????#???#????. 1,2,1,3,2
??????##.?. 1,5,1
#????.?.?##??????? 1,1,1,4,1,2
???#???#???#..?# 1,1,6,1
#?.?####?. 2,5
???..#.??.? 3,1
?????#.??? 2,1
??.?.????. 1,1
?#?#???.?###??#??. 1,1,2,9
.?#..??#????#?# 2,3,5
?.#?#??#?#. 1,6,1
.#?.???????????#..? 2,5,1,1,1,1
??..???.?#????????? 1,3,2,1,1,1
??.?#??#..???. 2,3,1,2
#????.?????#.???? 4,6,2
?##.?.?#?. 3,1,2
?????#?.???????. 4,1,3
.?##?..#?#.??????? 2,1,1,2,2,1
?.##?#?.??. 4,1
??????#?#? 1,1,3
?.??#??????#?????.? 1,8,3,1,1
""")
defmodule Sol12 do
def read_case(text) do
# IO.inspect(text)
[cmd, pattern_str] = String.split(text)
# IO.inspect(pattern_str)
pattern = String.split(pattern_str, ",") |> Enum.map(&String.to_integer(&1))
{String.to_charlist(cmd), pattern}
end
def solve({[], [], _}), do: 1
def solve({[], pattern, _}) do
if Enum.sum(pattern) == 0, do: 1, else: 0
end
def solve({cmd, [], _}) do
if Enum.all?(cmd, &(&1 == ?. or &1 == ??)), do: 1, else: 0
end
def solve({[first | tail], pattern, just_take_sharp}) do
case {just_take_sharp, first} do
{false, ?.} ->
Sol12.solve({tail, pattern, false})
{true, ?.} ->
if hd(pattern) == 0 do
Sol12.solve({tail, tl(pattern), false})
else
0
end
{_, ?#} ->
if hd(pattern) > 0 do
Sol12.solve({tail, [hd(pattern) - 1 | tl(pattern)], true})
else
0
end
{_, ??} ->
Sol12.solve({[?. | tail], pattern, just_take_sharp}) +
Sol12.solve({[?# | tail], pattern, just_take_sharp})
end
end
def solve(_), do: 1
def read(text) do
String.split(text, "\n")
|> Enum.map(&Sol12.read_case(&1))
|> Enum.map(fn {cmd, pattern} -> Sol12.solve({cmd, pattern, false}) end)
end
end
part1 = Sol12.read(test_cases) |> Enum.sum()