diff --git a/23/elixir/inputs/day12.txt b/23/elixir/inputs/day12.txt new file mode 100644 index 0000000..4c0a08d --- /dev/null +++ b/23/elixir/inputs/day12.txt @@ -0,0 +1,1000 @@ +??????#??#?? 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/23/elixir/inputs/day12_example.txt b/23/elixir/inputs/day12_example.txt new file mode 100644 index 0000000..e925935 --- /dev/null +++ b/23/elixir/inputs/day12_example.txt @@ -0,0 +1,6 @@ +???.### 1,1,3 +.??..??...?##. 1,1,3 +?#?#?#?#?#?#?#? 1,3,1,6 +????.#...#... 4,1,1 +????.######..#####. 1,6,5 +?###???????? 3,2,1 diff --git a/23/elixir/inputs/day18.txt b/23/elixir/inputs/day18.txt new file mode 100644 index 0000000..395f0df --- /dev/null +++ b/23/elixir/inputs/day18.txt @@ -0,0 +1,618 @@ +L 4 (#6c74e0) +D 4 (#1afab1) +L 4 (#0b54a0) +D 18 (#3533c1) +L 3 (#411270) +U 14 (#121ed3) +L 4 (#17e0f0) +U 10 (#113841) +L 8 (#4fa040) +U 13 (#113843) +L 3 (#1b7fb0) +U 7 (#121ed1) +L 10 (#005ed0) +D 4 (#502e73) +L 5 (#47ebf0) +D 10 (#2d9421) +R 7 (#2d4360) +D 8 (#2d9423) +L 7 (#2164d0) +D 8 (#530f03) +L 9 (#14d330) +D 14 (#1c6c43) +L 8 (#5133e0) +U 13 (#2ec813) +L 7 (#2c56a0) +U 6 (#2b50c3) +L 14 (#465990) +U 3 (#5c9e03) +L 6 (#052cf0) +U 7 (#09d973) +L 10 (#3500b0) +D 11 (#088d63) +L 11 (#473f60) +U 11 (#405733) +L 5 (#414100) +U 5 (#10b5b3) +L 9 (#624920) +U 8 (#10b5b1) +L 10 (#02a810) +U 7 (#29a8c1) +L 14 (#6896c2) +U 7 (#4a0001) +L 6 (#07ef12) +U 4 (#399321) +L 7 (#2054f0) +U 8 (#226a41) +R 8 (#5030e0) +U 6 (#57a921) +R 3 (#3f7160) +U 11 (#4df573) +R 6 (#49fe20) +U 13 (#1c3d03) +R 9 (#4f4362) +U 3 (#0ba303) +R 8 (#75c3f2) +U 13 (#3e1493) +R 12 (#0af520) +U 6 (#3dc1b3) +L 4 (#0e7730) +U 2 (#36f991) +L 8 (#565800) +D 5 (#36f993) +L 6 (#554300) +U 5 (#35a393) +L 8 (#3ff8c0) +U 7 (#345003) +R 11 (#0140c0) +U 5 (#34d343) +R 11 (#0140c2) +U 3 (#3da6b3) +R 2 (#368952) +U 8 (#6c3473) +R 5 (#132af2) +U 5 (#47ae31) +R 11 (#479542) +D 5 (#34c7d1) +R 3 (#096fc2) +D 4 (#00bec1) +R 9 (#1f8712) +D 10 (#317681) +R 3 (#475352) +D 2 (#463703) +R 12 (#2e2f12) +U 4 (#260611) +L 8 (#2fa902) +U 7 (#260613) +L 2 (#5461a2) +U 6 (#463701) +L 11 (#3050d2) +U 11 (#508b33) +L 11 (#258512) +U 14 (#5e2013) +L 4 (#2b63a2) +U 2 (#6c3471) +L 7 (#297132) +U 9 (#0a6333) +L 14 (#4c7b92) +U 4 (#6f3b33) +L 16 (#4c7b90) +U 6 (#09f3c3) +L 15 (#053fa2) +U 5 (#4ad5c3) +R 8 (#1f96b0) +U 7 (#5c6d63) +R 5 (#0835f2) +U 11 (#4d5af3) +R 6 (#525352) +U 8 (#165b63) +R 3 (#5a8940) +U 4 (#099e83) +L 3 (#1f96b2) +U 16 (#1af253) +L 6 (#767070) +U 4 (#231d23) +L 7 (#02a910) +U 9 (#42f673) +L 12 (#0b64d0) +U 3 (#27b9c3) +L 4 (#21b400) +U 10 (#1744e3) +L 12 (#5a75e0) +U 8 (#42c5c3) +L 12 (#199ed2) +U 13 (#4cefc3) +L 9 (#245442) +U 8 (#119c61) +R 10 (#095c02) +U 11 (#68be41) +R 6 (#14ae52) +D 9 (#161161) +R 4 (#03bf22) +D 6 (#121833) +L 4 (#11a032) +D 12 (#1d8a53) +R 8 (#570a92) +D 5 (#4f2d23) +R 9 (#24dc02) +U 6 (#119c63) +R 5 (#230162) +U 9 (#1b8183) +L 13 (#19a6f2) +U 10 (#5dbb13) +R 13 (#200702) +U 7 (#5ee763) +R 5 (#059f22) +D 3 (#5ee761) +R 10 (#1a4342) +D 8 (#394c93) +R 12 (#0a6d32) +U 8 (#5756d1) +R 8 (#1ca732) +D 10 (#22af01) +R 3 (#424712) +D 9 (#53bcc3) +R 9 (#331712) +D 10 (#264913) +R 4 (#244212) +D 7 (#3f48b3) +R 8 (#54dec2) +D 14 (#515d83) +R 4 (#4d5930) +D 8 (#058093) +R 5 (#3738b0) +D 3 (#2b5173) +R 9 (#1f3660) +D 16 (#4c7f03) +R 5 (#6179a0) +D 3 (#548343) +R 5 (#4a2640) +D 3 (#106533) +R 6 (#1cfc70) +U 4 (#184de3) +R 4 (#234e70) +U 9 (#67b7f1) +R 7 (#2a16d0) +U 7 (#24fea1) +R 9 (#564262) +D 4 (#436f31) +R 8 (#564260) +D 10 (#24e101) +R 12 (#4df570) +D 2 (#152b43) +R 9 (#2bcb50) +D 8 (#5e2443) +L 3 (#444350) +D 4 (#13c883) +L 16 (#079a60) +D 2 (#2e75b3) +L 2 (#5ffa70) +D 7 (#3aede3) +L 8 (#0231f0) +D 13 (#0cc973) +R 5 (#3986f0) +D 11 (#0486a3) +R 7 (#34db30) +D 8 (#609e53) +R 3 (#44d400) +D 8 (#4c3ca1) +L 15 (#40a880) +D 5 (#18e851) +R 5 (#24f640) +D 6 (#0cc971) +R 9 (#03f810) +D 8 (#46d213) +R 4 (#2a68f0) +D 18 (#179ca3) +R 3 (#58afe0) +U 18 (#4cf4b3) +R 2 (#2ac350) +U 2 (#18ecd3) +R 10 (#0e0360) +U 5 (#2df743) +R 11 (#4e89a0) +U 13 (#4beca3) +R 6 (#5610e0) +U 5 (#155291) +R 3 (#6dbb30) +U 5 (#03dd31) +R 3 (#4dc0c0) +U 12 (#18d661) +R 11 (#36e652) +U 10 (#4fe7a1) +R 5 (#2f6e32) +U 17 (#2fe1d1) +R 2 (#2cba62) +U 9 (#2930a1) +R 5 (#286d12) +U 7 (#3ee381) +R 12 (#0c4ce0) +U 4 (#286181) +L 17 (#259a80) +U 6 (#5e3323) +R 7 (#4185c0) +U 10 (#5e3321) +R 5 (#2a9270) +U 2 (#11e811) +R 12 (#0edfe0) +U 11 (#053c71) +R 11 (#2abf90) +U 7 (#5f6381) +R 7 (#307120) +U 3 (#17a761) +R 9 (#180940) +U 10 (#0baa11) +R 3 (#5fe2f0) +U 11 (#0baa13) +R 9 (#69f120) +U 5 (#14bc71) +R 7 (#2fe940) +U 16 (#184891) +L 7 (#3e76b0) +U 10 (#74c8b1) +L 13 (#11fe70) +U 9 (#3712e1) +R 6 (#114d30) +U 9 (#26b653) +R 11 (#05c152) +D 9 (#151243) +R 3 (#400370) +U 8 (#6d4e13) +R 17 (#400372) +D 6 (#0ae363) +L 4 (#05c150) +D 5 (#17a753) +R 7 (#10cfc2) +D 15 (#470433) +L 7 (#10cfc0) +D 6 (#37c983) +L 8 (#19e760) +D 6 (#0ab8e3) +R 12 (#5e9970) +D 5 (#1ee3f1) +R 6 (#2b3962) +U 11 (#3a45b1) +R 6 (#3da2a0) +U 6 (#6e96f1) +L 5 (#3da2a2) +U 8 (#2e7501) +R 11 (#2b3960) +U 10 (#657f61) +L 11 (#291930) +U 12 (#04b591) +R 5 (#0c7c20) +U 13 (#043ff3) +R 2 (#14c0b0) +U 11 (#65d263) +R 6 (#060310) +U 7 (#499ce1) +R 3 (#511ff0) +D 10 (#207571) +R 9 (#2e4e30) +D 5 (#33a333) +R 4 (#6ce740) +D 5 (#449c93) +R 3 (#4540d0) +U 9 (#244651) +R 3 (#36cb70) +U 3 (#53f971) +R 12 (#122200) +U 8 (#454131) +R 3 (#0c83f2) +D 7 (#0b87c1) +R 18 (#361a72) +D 7 (#589d41) +R 11 (#31dab2) +D 4 (#589d43) +R 5 (#432802) +D 7 (#0b87c3) +R 7 (#101df2) +D 18 (#32fb11) +R 5 (#597e62) +D 6 (#271ec1) +R 10 (#19d672) +D 3 (#5fe541) +R 12 (#358d42) +D 6 (#258221) +R 6 (#192fd2) +D 10 (#048fa3) +R 7 (#3b17e2) +D 9 (#44d6b3) +R 2 (#456350) +D 8 (#15ae53) +R 5 (#456352) +D 4 (#4d7183) +L 3 (#173ee2) +D 7 (#2754e1) +L 5 (#1df992) +D 13 (#09dc01) +L 7 (#1db1f2) +D 3 (#6660e1) +L 12 (#04b802) +D 2 (#00c7f1) +L 5 (#03d8e2) +D 8 (#1f7303) +L 9 (#05d1e2) +D 6 (#1ded03) +L 7 (#2743f2) +D 2 (#1eebc1) +L 4 (#3c3272) +D 10 (#1eebc3) +L 7 (#15c632) +D 13 (#1ded01) +R 7 (#12ea32) +D 4 (#1f7301) +L 6 (#2b9562) +D 6 (#2ffb01) +L 8 (#5bf420) +U 4 (#422961) +L 8 (#69be80) +U 9 (#0a0141) +L 5 (#006c40) +U 12 (#1da551) +L 2 (#1db1f0) +U 4 (#0769d1) +R 9 (#1be912) +U 4 (#5fe191) +R 6 (#2aa3c2) +U 16 (#2283a1) +L 6 (#0d5b30) +D 6 (#37efc1) +L 4 (#5d2960) +D 9 (#06b111) +L 12 (#72b960) +D 3 (#1bb7f1) +L 2 (#34e3f0) +D 12 (#4ff8b1) +L 10 (#2dbbc0) +D 3 (#46ec21) +L 7 (#248220) +U 11 (#19bc11) +R 11 (#338e40) +U 2 (#24d9e1) +R 3 (#0e7330) +U 10 (#514f71) +L 8 (#3e49e0) +U 6 (#32c963) +L 6 (#344102) +U 10 (#27f3e3) +L 14 (#344100) +D 11 (#2b8c83) +L 9 (#1ed1b0) +U 11 (#400a01) +L 5 (#4a5de0) +U 10 (#3b32b1) +L 5 (#4a5de2) +U 4 (#0b0d11) +L 11 (#3d3140) +U 5 (#508151) +L 5 (#47d872) +D 8 (#132e71) +L 12 (#07e2f2) +D 4 (#40a3b1) +L 4 (#5e24b2) +D 9 (#181e91) +R 16 (#5e24b0) +D 9 (#3042d1) +L 3 (#07e2f0) +D 11 (#638e01) +R 5 (#3de122) +D 8 (#0f9b41) +R 15 (#452fc2) +D 6 (#57e8b1) +R 7 (#2a4e22) +U 14 (#00d391) +R 5 (#435852) +D 10 (#1e6f91) +R 6 (#6a77d2) +D 7 (#217553) +L 6 (#0db942) +D 9 (#36a663) +L 7 (#541100) +D 11 (#547883) +R 6 (#46c250) +D 3 (#1ab863) +L 6 (#0040e0) +D 18 (#28b1d3) +R 6 (#197e32) +D 8 (#3739c3) +R 7 (#540ee2) +D 9 (#572ac3) +R 8 (#2d8722) +U 2 (#0825b3) +R 4 (#1a1be2) +U 13 (#1ef4f1) +R 3 (#35b942) +U 6 (#00ae13) +R 7 (#307ab0) +U 6 (#6d52e3) +R 5 (#307ab2) +U 11 (#1aec73) +R 6 (#1801e2) +D 9 (#09f4f1) +R 8 (#0b72b2) +D 4 (#156b11) +R 16 (#3ea4e2) +D 4 (#2b86f1) +R 8 (#3ea4e0) +D 10 (#3b22e1) +L 6 (#0b72b0) +D 9 (#02e391) +L 11 (#3b40c2) +D 4 (#4b0d21) +L 4 (#436750) +D 3 (#0a2871) +L 11 (#459490) +D 2 (#448131) +L 7 (#4e46d2) +D 6 (#1239c1) +L 2 (#18be72) +D 3 (#01e451) +L 2 (#63d532) +D 8 (#088331) +R 11 (#13fbd2) +D 2 (#76bde1) +R 9 (#010bf2) +D 7 (#093ed1) +R 11 (#34efc2) +D 9 (#346ad1) +R 15 (#5ea842) +D 8 (#3f1461) +R 8 (#075292) +D 5 (#43d301) +R 6 (#5c8642) +D 7 (#515c51) +R 6 (#35e392) +D 4 (#515c53) +L 11 (#3c52e2) +D 11 (#460471) +R 11 (#55f562) +D 4 (#275f23) +R 4 (#6901b2) +U 15 (#058f43) +R 5 (#4cad42) +U 8 (#5ad323) +R 6 (#4180a2) +U 3 (#408241) +R 14 (#3c0f62) +U 3 (#055fa1) +R 9 (#3f6652) +U 3 (#7414f1) +R 3 (#11ae90) +U 9 (#098c31) +L 13 (#4a7ad0) +U 6 (#5dfb41) +R 13 (#1f4c50) +U 8 (#165861) +R 3 (#2d68c2) +U 2 (#715cb1) +R 7 (#2b7e62) +D 6 (#241511) +R 9 (#4e1152) +D 8 (#26ec71) +R 5 (#247332) +D 14 (#051611) +L 9 (#09f002) +D 16 (#366e31) +L 3 (#0d6b12) +D 2 (#6dc513) +L 6 (#1eccb2) +D 7 (#6d5ce3) +R 8 (#4a81b2) +D 9 (#02b891) +L 8 (#282492) +D 5 (#02b893) +R 8 (#1c9a22) +D 13 (#5a47b3) +R 7 (#4287e2) +D 11 (#0aecb3) +R 3 (#285d50) +D 3 (#2fba33) +L 14 (#1115b0) +D 5 (#42d373) +L 5 (#610760) +U 11 (#42d371) +L 14 (#13cda0) +U 3 (#2e73f3) +L 11 (#424cf0) +U 9 (#0e40e3) +L 5 (#2ca0f2) +D 11 (#6284d3) +L 4 (#4f7e52) +D 12 (#00d2d3) +L 8 (#0d1642) +D 8 (#1f9c23) +L 6 (#6648b2) +D 9 (#0101c1) +L 9 (#2cbc52) +D 3 (#094dc1) +L 8 (#35d1a2) +D 2 (#66e3d1) +L 10 (#20ab92) +D 10 (#168e31) +L 8 (#710542) +U 12 (#1e5051) +L 8 (#248cc2) +U 3 (#3fbc61) +L 6 (#64dc10) +U 10 (#2b81c1) +L 11 (#69f840) +D 10 (#4eae41) +L 4 (#5a3aa0) +D 8 (#2bbb71) +L 13 (#574fc2) +D 3 (#1d2801) +L 3 (#1fa5d2) +D 12 (#04b8f1) +L 3 (#136922) +D 4 (#4ec981) +L 11 (#042042) +D 5 (#319921) +L 15 (#5bd8c2) +D 3 (#216d11) +L 3 (#110372) +U 7 (#530633) +L 2 (#2db3d2) +U 10 (#3f8131) +L 4 (#047412) +U 8 (#1f5091) +L 4 (#07efb2) +U 8 (#02d151) +L 4 (#0503b2) +U 4 (#517631) +L 12 (#11df72) +U 4 (#273981) +L 3 (#5a6a72) +D 4 (#1ac7a1) +L 8 (#0aa4c2) +D 4 (#1d29c3) +R 13 (#5f2750) +D 9 (#592b53) +L 13 (#5f2752) +D 8 (#1ff393) +L 7 (#2b1a32) +D 4 (#20d203) +L 18 (#2724e2) +D 4 (#486343) +R 19 (#2ea0e2) +D 2 (#486341) +R 14 (#33e032) +D 6 (#1fb073) +L 17 (#2a4422) +U 4 (#4b9413) +L 6 (#1563d0) +D 8 (#065ed1) +L 8 (#317df0) +U 8 (#02fac3) +L 12 (#2f35c0) +D 4 (#02fac1) +R 9 (#5d1770) +D 7 (#065ed3) +R 7 (#16fa70) +D 17 (#35b073) +R 7 (#0c5930) +D 5 (#400163) +L 9 (#2a1ab2) +D 11 (#3bc7a3) +L 14 (#269eb2) +D 9 (#1ef343) +L 10 (#269eb0) +U 4 (#2d4f23) +R 6 (#38f922) +U 9 (#5a3f31) +L 3 (#1269d2) +U 8 (#2dcad1) +L 7 (#2296c2) +U 9 (#3b97a3) +R 10 (#24c7b2) +U 3 (#67d443) +L 6 (#39a682) +U 8 (#1c8c93) +L 6 (#75d832) +U 3 (#11b393) +L 3 (#441282) +U 9 (#4c45b3) +L 11 (#385732) +U 11 (#1c1a93) +L 7 (#31b132) +U 8 (#25ae53) diff --git a/23/elixir/inputs/day18_example.txt b/23/elixir/inputs/day18_example.txt new file mode 100644 index 0000000..fc7612e --- /dev/null +++ b/23/elixir/inputs/day18_example.txt @@ -0,0 +1,14 @@ +R 6 (#70c710) +D 5 (#0dc571) +L 2 (#5713f0) +D 2 (#d2c081) +R 2 (#59c680) +D 2 (#411b91) +L 5 (#8ceee2) +U 2 (#caa173) +L 1 (#1b58a2) +U 2 (#caa171) +R 2 (#7807d2) +U 3 (#a77fa3) +L 2 (#015232) +U 2 (#7a21e3) diff --git a/23/elixir/inputs/day19.txt b/23/elixir/inputs/day19.txt new file mode 100644 index 0000000..05eb616 --- /dev/null +++ b/23/elixir/inputs/day19.txt @@ -0,0 +1,728 @@ +fxg{x<2288:tn,m<3059:mlg,xl} +fdl{m>3467:A,s<1414:A,s>2068:A,A} +fzv{m<82:R,m>134:A,s>1033:R,A} +fmd{a>3959:A,R} +xx{s>1478:shz,s>972:tfm,a>3810:jvb,lfb} +cjj{m<2288:R,a>3822:A,A} +qht{a<2481:vk,m>987:thk,s>2051:xkl,mz} +ds{a>2589:A,R} +ts{s<1928:A,A} +cb{s<3311:R,s<3404:R,R} +qcm{s>838:A,R} +xxz{m>2772:dpn,A} +zbx{s<2149:R,m>1885:R,s<3157:A,R} +mdq{m>2002:sg,a>3908:gz,m<1702:np,gxm} +rlm{m<2733:R,m>2925:lhf,s<2207:msh,gjh} +zlx{m>2987:R,s>1645:R,R} +ngc{m<3821:A,A} +mjq{s>1671:A,s<1484:A,A} +bk{a<3273:A,m>3695:pkb,m<3584:R,dzk} +mvc{m>3223:R,A} +xl{s>677:A,m>3381:A,A} +pm{s>2238:srn,dxg} +szv{a<1654:krs,a<3133:fnm,m<3024:gpl,lh} +tdp{m<3483:mnh,a<3418:xrv,sf} +kgk{x<1234:fbd,pjk} +xkl{a>2755:kd,x>1913:vv,R} +jx{a>3102:rzg,gsm} +pz{x<1357:R,s<338:R,R} +ztx{m>3558:kfs,s<1441:chq,x>2307:A,A} +jp{m<1022:R,a<401:hrk,x<2481:A,lfr} +nbp{x>3585:A,A} +lqv{x<1820:A,A} +hbd{a<387:hgd,nt} +hh{s<760:R,s>1049:A,A} +hbv{s>2416:A,m<1490:A,m<1526:R,R} +fq{s<490:R,R} +kql{s>1995:A,a<3405:R,A} +bhl{s>3286:dzj,m<3238:csn,vn} +nfs{m>454:A,x>2121:R,A} +vvd{m<45:A,s>2313:rr,m>86:A,vdx} +msm{m>410:hfx,m>213:qdk,a<3545:bd,xp} +zpt{s<393:fj,a<3968:R,x<989:R,vgm} +qc{x<1556:A,R} +tm{a>3874:R,s<3072:A,s<3430:A,A} +hxg{a>459:A,m<3846:A,A} +vrh{s>513:fxg,m>3140:mhj,a<2061:bv,zk} +pn{x>221:R,m>2805:A,R} +pb{x>2748:R,x>2190:A,m>343:R,ln} +zn{x>2133:xm,x<813:tb,s>252:pz,R} +jls{x<2268:A,m<422:R,a<2257:R,A} +pl{s>2588:A,s<975:smm,jlr} +kt{s<2491:R,s<2547:A,x<2548:A,A} +xrv{s>1456:bk,fq} +cs{x<1649:R,A} +hq{m>3164:rv,x>594:R,sjl} +qvr{s>457:R,a<1922:R,R} +cz{m>2163:R,m<1830:lqv,tbg} +mnm{x<2059:R,A} +msh{a>3672:A,x>2294:R,A} +jh{a>447:A,m>3125:R,R} +btl{s<1969:rmb,A} +nxj{a>1150:R,x<1570:A,A} +hcc{s>3619:R,m<3681:A,s<3546:R,A} +jnt{s>3000:ksn,a>3744:A,xlp} +ck{m>3636:hxg,a>265:R,a>134:R,mt} +kr{s>591:R,s<285:gj,x<1120:R,mnm} +jtl{m<2676:ljt,a>3746:R,pn} +tdj{x<3002:R,R} +pf{s<3426:qjt,s>3624:nsl,xjk} +pj{s>1859:R,R} +xz{s>2322:pf,m>2095:pvb,ss} +bl{x>1072:R,vrf} +hrk{a>204:R,R} +vv{s>2378:A,A} +px{a<3676:R,R} +cth{s>1089:R,x<1723:A,A} +vd{s>670:A,m<2596:A,x>1199:R,A} +hvb{x>1121:A,x<581:znp,A} +gn{m<920:gml,x<2325:kgk,rlx} +csn{x>893:R,s<2824:mnv,qn} +scs{m<3673:R,x<1134:A,a<3671:A,A} +ss{s<1302:zfx,x>815:hf,btl} +sjl{x>263:R,A} +tfm{a<3703:A,s<1173:R,dxt} +hfx{s>1106:A,s<547:bx,dj} +qt{a>3806:xlm,s>1595:bj,a<3717:xs,mmf} +mlg{x>3146:R,s>721:A,A} +gkm{a>660:R,A} +txg{s>810:R,m<3165:R,a<3430:R,R} +pvb{s<1031:qql,a>3301:jln,vf} +fxb{a<3859:pkq,mdq} +ljt{x>237:A,a>3840:R,R} +jcm{x>3322:A,A} +mqs{a<3643:pqp,a<3769:tbm,s<2584:fxb,tbs} +lxk{a>2753:qdm,a>2621:tlp,cq} +tbg{m<1957:A,m>2053:R,m>1999:R,R} +gdk{s<1637:A,A} +bv{s<197:xjx,a>1986:zp,R} +xnj{m<3359:R,m>3463:R,m<3428:R,A} +gv{s>1869:zqk,txp} +jln{x>679:gp,s<1624:R,s<2011:crb,xqx} +ft{s<1931:A,m>277:A,A} +fxr{m<2870:cgn,x>961:vm,m<3322:R,A} +jrb{s<3400:R,x>1684:R,x>1454:R,A} +dsd{a>3907:A,mf} +rp{s>3309:R,x<1004:A,jbs} +jlr{x>3494:A,m<3218:A,R} +lhd{x<814:R,x<1071:R,R} +thl{a<3885:R,s<3770:A,R} +qp{a<1700:A,m<1132:R,s<962:A,A} +xmg{m>3765:kb,s>2035:msf,s<1048:fx,lj} +sg{x>2270:A,R} +vtr{s>473:A,x>460:R,R} +zk{a<2113:bhg,m<2164:A,R} +gml{a<2183:jz,x>2629:fh,a>2379:kr,vl} +phl{a>1213:xnk,x>2508:lq,dsp} +grr{a>3924:zvv,a<3874:bmb,xv} +mz{s>1916:A,m<924:dtb,a<2668:A,zv} +dr{a>830:R,m>2354:R,lr} +mmp{m>3723:zqr,m<3706:R,s<580:R,A} +srn{m>1115:A,s>2393:R,A} +mhj{x>2438:A,dl} +mq{m<204:lc,x>1107:cc,A} +tbs{s>3146:mjl,dsd} +mmf{x>1280:R,s<937:R,A} +ksn{a>3701:R,m>3252:A,R} +spn{x>1838:R,x<1168:dzc,s>1037:A,qc} +vbf{a<3249:R,s<2020:R,R} +gt{s<2374:A,s<2461:A,R} +lg{m>867:A,x<1356:R,s>3363:R,R} +hr{a>3739:A,x>339:R,R} +fh{a<2473:A,a>2541:A,x>3430:cr,A} +tk{m>2064:R,m<1828:R,A} +mmc{s<3055:R,R} +flh{s>2954:A,x>3012:A,x<2516:R,A} +stn{s>1855:zl,a<3682:A,tk} +lt{a<2953:sm,m>140:tdj,kql} +pjh{s<3223:R,s>3319:R,x<1248:A,R} +cd{m<3499:pl,gb} +zfx{x<859:vtr,x<1065:R,lqm} +kbx{x>2196:tst,ctc} +ktq{s<1368:A,R} +spg{a<2022:A,m<2383:R,x<852:kxh,A} +kb{a>3815:grr,s>2167:rp,hbm} +vnh{x>2559:qvh,rb} +xk{s<973:A,s>1418:R,A} +zz{m<3797:pbt,R} +nrs{m<2763:R,a>2242:R,s>2010:A,A} +xqr{a<1948:bts,s>995:fpx,vrh} +tb{s<238:R,R} +qdx{x<582:csj,xx} +vts{a<3055:R,a>3208:A,a<3112:A,A} +fbd{a<1902:qp,nn} +smm{a<3598:A,x>3526:R,m<3214:R,R} +xs{s<1042:R,a>3659:A,A} +zc{a>2724:R,m<951:R,x>2100:R,R} +csj{m<2472:tq,s<2587:jtl,a>3749:fd,bbd} +rq{m>3626:A,a>2389:A,R} +ckk{s<721:qvr,a>2023:R,x>3096:R,A} +znp{x<195:R,x>385:A,a>3930:A,R} +hz{m<565:A,a>732:A,m>770:A,R} +zv{x>1524:R,x>740:A,s>1835:R,R} +zp{x<2081:R,A} +qgf{s<801:A,a<3653:A,s>1342:A,R} +tp{a>3371:zrk,R} +gm{a>937:mmc,x<833:fp,jh} +msf{s<2813:hnx,m<3701:jj,s<3492:ls,xt} +dxt{x>924:A,m<2200:A,A} +gpl{x>1337:mqs,a<3544:xz,qdx} +kjr{x<2252:A,m<2340:R,R} +xqx{x>414:A,m<2609:R,s<2216:A,A} +fn{x<1666:tzd,m<1371:pq,ph} +lqm{a>3330:A,m>1880:R,x<1195:R,A} +ssj{m>1131:cxm,m<992:A,x>2550:txx,R} +gxm{a<3878:A,s<1216:A,A} +pgk{x>1554:R,m>2073:A,m>1777:A,A} +cf{s>3103:A,R} +bnq{m<2544:R,m<3510:R,R} +sx{s<1453:dnl,m<1270:clq,zd} +nc{m>1030:A,a>3768:R,R} +flx{x<2558:A,m<1299:R,A} +rh{m<1142:rcq,a>3251:qpc,x<1463:rd,A} +vm{a>1836:R,s>1532:R,R} +qfc{x>1563:A,x>1412:R,A} +pkb{a>3343:A,R} +qn{m<3164:A,x<359:A,m<3195:A,A} +hpk{a<3860:A,m>2285:A,x<982:A,A} +vdx{s>2213:A,s>2184:A,x>2983:R,A} +nkm{m<3672:A,a<3571:R,m<3811:A,A} +rx{x<2190:fxx,dx} +hgd{m<981:A,A} +szs{m<2528:fv,m>3232:pj,zlx} +vz{x>1069:R,x<426:R,zg} +vk{m<1038:A,shc} +kk{m>2465:R,s>2032:R,A} +rk{s<3088:kmf,x<2955:pqk,s<3479:th,zb} +pkq{s<1716:cjj,s>2162:A,s<1905:vc,R} +bsx{x<370:R,m>2899:R,A} +qpm{s>3450:pp,bl} +pp{x<955:mh,x>1395:R,R} +tst{x>2877:bnq,R} +dhm{m<3479:xsg,mv} +fpx{x<1855:spg,szs} +mdh{a>3390:A,m<2131:A,s<3506:A,R} +phj{a>2554:lxk,s<2157:nj,s>3251:kbx,vnh} +hn{x>557:R,m<152:A,A} +fnm{a>2161:phj,s<2559:xqr,vs} +xzp{a>3400:A,a<3357:A,R} +dm{x>971:A,s<1707:A,s>1743:R,A} +fmt{x>3561:A,A} +tc{m<3759:R,m<3761:R,A} +zcq{s>953:gl,A} +qvh{m>3005:rq,a>2368:skg,qq} +xbg{a<2362:rkm,a<2427:A,A} +bgs{s>3730:A,x>2093:A,A} +vt{m<287:R,R} +vzs{x>2122:mdc,R} +dt{a<322:A,a<494:R,A} +kcd{m<2490:R,R} +bhg{a<2083:A,x>2127:R,A} +lc{x>1216:A,A} +lz{x>2398:A,m>1162:R,R} +mnh{m>3327:vz,x>1160:vtx,hq} +htm{x>2296:zkf,s>2077:jth,hnc} +tn{a<2020:R,R} +jzm{x>3227:A,R} +tj{a>3813:A,A} +fp{m>3076:A,a>493:R,m>2934:A,R} +rts{a<3848:nc,m<1013:bs,m<1078:tpk,lvh} +kl{m>767:R,s<2165:R,s<2258:R,A} +xr{x>1462:pb,x>820:mq,fdr} +sm{x>3094:A,A} +lr{m>1863:A,R} +dzj{x>1287:qfc,s<3612:lhd,thl} +bd{m>83:cth,s<970:jfs,db} +fdr{a<520:qd,s<892:A,R} +kfs{s>1567:R,a>3288:R,A} +gl{s>1251:R,m>949:R,R} +gx{a>3225:A,x>524:A,m>2467:R,A} +bs{x<1767:R,m>949:R,s>2069:R,R} +gmn{m>3647:R,a>3720:A,s<2882:R,R} +nh{m>538:A,A} +nv{m<3608:dt,m>3822:rhv,a<376:jtn,R} +xnk{a>1282:zhs,m>1091:flx,lg} +sl{x<943:hr,x<1538:hs,R} +pbz{s>2319:rct,a>750:R,kl} +xjx{x>1490:R,x>948:R,x<374:R,R} +hf{s>1961:A,mjq} +fr{x<2009:pbz,m<909:zjk,a<1227:tt,pm} +qpc{x>1774:R,x<1034:A,A} +nx{s>3695:A,a<458:R,A} +xlp{s>2692:R,x>1500:R,a<3692:A,A} +vrf{a>1813:A,x<675:A,m>2397:A,R} +fx{a<3858:dq,m<3684:hvb,a>3947:zpt,mmp} +dvz{s<2448:R,x<1803:nkm,a>3561:hfg,A} +nt{s<3265:R,s>3609:R,A} +lk{x>1092:R,A} +gb{m<3766:px,jcm} +tzd{x>643:R,m>1402:R,A} +gj{s<181:R,s>242:A,R} +lst{x>2139:hbd,x<1078:npf,lpq} +kf{s<1698:tf,ftj} +fd{x<225:A,x<444:R,tm} +gp{x<944:A,x<1151:A,A} +djs{x<1630:A,s<1045:A,A} +vc{m<2251:R,m>2675:A,s<1784:A,R} +mcv{x<1158:R,A} +sr{s>637:R,A} +xp{a<3809:qgf,a>3876:cs,fzv} +zq{a<2371:R,R} +sn{a<574:R,s<3238:A,s>3608:A,R} +prx{s>3406:R,A} +gsm{a<2825:zc,s<779:xb,m<880:A,bm} +qns{a>3713:R,A} +jth{m<3374:gm,a>776:nxg,x<1068:nv,ck} +qqn{s>2266:lqh,jf} +nsl{s>3816:A,a<3396:A,R} +tt{x>3233:nbp,A} +jbs{x<1614:A,A} +xj{s>2368:R,a>2424:R,s>2314:R,A} +xv{s<1349:A,R} +qqf{x>1015:jnt,qmk} +ztb{x<772:R,A} +qnr{m<3763:A,m<3892:R,R} +nn{s>775:A,x<470:R,R} +bbd{m<2836:R,bsx} +nj{s<1347:xbg,a<2328:bcz,cx} +lrg{a>3925:R,A} +jd{x<3255:R,a>1048:A,a<984:A,A} +qql{x<857:A,R} +hfg{a>3587:R,s>3271:R,R} +spc{a>3762:R,a<3682:R,s>1915:A,A} +skg{s>2718:A,m<2395:A,s>2452:A,A} +mzg{s>258:R,x<1217:R,A} +bx{m<551:A,R} +lfb{x<1060:R,s<416:mzg,m<2306:sr,vd} +pv{a<3182:R,m<600:R,R} +fv{a>2031:A,a<1998:R,x<3117:R,R} +lqb{x<937:A,a<2879:R,m>152:A,A} +shz{a>3752:hpk,a<3647:R,A} +cxc{a<1094:R,a<1220:A,R} +th{m>2853:R,a>1789:cb,hgq} +thk{m<1092:A,a>2706:vq,A} +fj{x<730:A,s>180:R,m<3718:A,R} +gjh{s<3014:R,A} +bts{x>1336:dv,x<614:fpm,fxr} +bpc{m>2876:frp,cz} +fxx{x>1291:sv,a>821:cxc,jg} +kdt{x>1408:A,x<526:A,a>2495:A,R} +xnx{s<2569:tz,s<3106:gmn,A} +bnt{s>3072:kh,x>1617:A,s<2861:A,A} +nqb{m>787:bnt,mtl} +fgj{x<982:pld,m<3732:mkh,R} +vmp{a>377:A,s>3562:A,A} +mt{x<1659:R,x>1949:R,a<86:A,A} +jjr{a<3524:md,pk} +nf{a>3693:A,m>3721:A,x<1258:R,A} +kmf{m>2616:A,ch} +qqm{m<759:msm,m<1066:jx,s<1072:mbx,sx} +npf{s>3135:nx,a<607:A,a<735:A,R} +zfz{a<593:R,m<1173:R,m<1287:R,A} +qd{x>400:R,a>333:A,s<926:A,A} +md{m>3814:A,A} +dl{s>329:A,R} +xns{s<1829:A,spc} +mf{x>2942:R,x<1923:R,A} +pc{x>578:R,s<1159:R,s<1501:A,R} +js{x<1654:A,A} +ph{x<2673:A,a<3382:A,R} +mdc{x>3156:A,A} +kd{s>2236:A,a<2877:A,s>2169:A,A} +stv{x<1621:A,A} +ttf{s<2002:gv,fr} +fc{a>2299:R,x>1400:A,R} +llx{m<1282:hvf,R} +txx{m<1072:R,m>1107:R,A} +tpk{m>1055:A,a<3918:R,s<2145:R,R} +gz{s<1406:A,s>2050:R,A} +clq{s<1549:lz,R} +vtz{a>1307:R,R} +xh{x>1990:R,s>2577:A,R} +dxg{s<2121:R,m>1223:A,s>2179:A,R} +jj{m<3671:lk,s<3497:R,s>3723:xdd,hcc} +dlh{m>2519:R,a>2691:R,R} +zkf{m>3525:fmm,s>1899:jzm,fkp} +bcz{s<1775:R,nrs} +hnx{m>3695:R,qk} +frp{s<3328:A,bgs} +jb{x>3417:R,m<3694:R,R} +htj{s<903:dr,jvf} +qdm{x<2036:vj,s<1607:hh,flh} +xn{a<561:R,m<3597:A,m<3806:stv,R} +tlp{x<2194:dlh,A} +bm{m>977:R,s<1159:A,a>2980:A,R} +cr{m<444:R,a<2515:R,a<2529:R,A} +cq{s<1598:kx,x>2199:ds,a>2582:R,mcv} +jg{x>719:R,a<322:A,m>425:R,R} +kx{a<2578:R,m<2783:R,R} +rmb{m>1701:R,s>1741:R,R} +cx{s<1842:kjr,a<2456:A,s<2046:ts,kdt} +dh{a>1396:nqb,m<707:rx,a<911:lst,phl} +rkm{s>624:A,m<2304:R,a>2285:R,A} +dj{s<896:R,s>1021:A,A} +jfs{m>50:A,m<30:A,A} +bj{s>1901:xnj,s<1781:dm,R} +sdm{s<2101:A,s<2351:R,A} +cnb{a>669:gfj,xh} +jvb{x<1067:nnl,a<3877:R,x>1216:R,A} +td{x<1697:pv,m>565:st,bzm} +bzm{m<433:sdm,a<3012:R,A} +jtn{a<200:R,x>576:A,x>340:A,R} +rct{x>835:R,a>1372:A,A} +pbt{m>3727:R,a<3631:A,x<2581:R,R} +vtx{s<2246:txg,x>1434:cf,rrx} +hfs{m<3564:mvc,x>2387:xzp,s<1647:qcm,A} +ctc{s<3638:fc,R} +lvh{m>1112:A,m<1095:R,x<1917:A,R} +km{a>3774:A,m>3368:A,s<2096:R,A} +hg{s<2175:A,s>2402:lqb,hn} +mv{a<3791:A,a>3912:prx,R} +pq{s<395:R,s>768:A,m<1330:R,R} +mnv{a>3937:R,R} +cgn{s>1534:A,a<1782:A,A} +hfj{a<1252:A,m<3238:A,s>1189:R,A} +vgm{x>1551:A,s>726:A,A} +xdd{a>3845:A,m>3687:R,R} +mjl{s>3637:R,s<3353:nz,A} +kdd{x<3760:fmt,x<3872:A,m<1006:A,R} +sz{s<2416:A,a<3004:kt,R} +xjk{a<3328:R,a>3466:R,mdh} +tf{a<1495:lsl,a>2641:qqm,gn} +rcq{s<784:R,x<1815:A,A} +pqk{m<2915:vfv,m>3530:R,R} +lj{m<3698:sl,s<1487:fgj,xns} +bt{m>3937:A,R} +mjn{a<3737:A,a<3910:R,fmd} +bzn{m>1148:tg,a>2948:cvg,qht} +vj{s<2479:R,m>2514:R,s>3114:A,A} +pk{m<3785:R,m<3925:A,A} +rd{s<770:R,x<757:A,s<872:A,A} +hnc{x>1219:xn,gkm} +qk{x<894:R,m<3674:R,R} +nnl{s>432:A,R} +lhf{s>1783:A,m>2962:A,R} +rtk{x<590:R,x<975:R,a>3259:R,A} +zd{m<1376:zh,s<1580:R,lxg} +hs{s<1492:R,m>3665:R,A} +tg{s<2247:llx,zj} +rrx{m<3208:R,x>1262:R,x>1206:R,R} +fkp{a<1091:R,a>1372:A,hfj} +qq{s>2866:A,R} +txp{s<1757:nh,lnz} +qcf{s>3084:R,A} +chq{x<2326:A,s>790:A,x<2514:R,R} +zrk{x>2475:R,m<2352:R,A} +hc{s<3171:cnb,vzs} +pdv{s>1694:hc,htj} +mtl{a>2562:A,s<3387:nfs,a<1966:R,R} +sv{s<3288:R,x<1848:A,R} +cj{m>522:A,R} +nz{x<3106:R,a>3915:R,A} +vgd{x<207:R,m>2937:R,a<1846:A,A} +rzg{a>3598:hts,R} +dzk{s>2875:R,a<3368:A,R} +fmm{s>1385:A,a>817:A,jb} +kxh{x<512:A,x>704:R,A} +xm{x>3079:R,R} +rlx{x<2946:ssj,x<3395:ckk,m<1126:kdd,qsz} +cxm{m<1297:R,A} +xlm{m<3363:lrg,fdl} +qsz{a>2068:zq,R} +gh{x<2722:km,x>2801:R,m<3266:R,R} +vs{a>1978:bpc,x<2043:qpm,rk} +fpm{s>1180:vgd,x<258:R,A} +zb{s>3696:R,xg} +vfv{x>2448:R,m<1999:R,R} +jvf{a>1057:pgk,R} +zj{a<2790:xj,a>3352:A,x<1345:tqd,vts} +hkr{a>3732:A,x>711:R,A} +dsp{a>1078:nxj,m>975:A,A} +dx{x>2822:R,sn} +hd{s<2428:qt,m>3374:dhm,a<3823:qqf,bhl} +ftj{s>2579:dh,a<2113:ttf,m<892:mx,bzn} +mkh{m<3720:A,s>1274:A,R} +vl{x>1641:jls,x<807:A,s>913:ktq,cj} +crb{a<3406:A,R} +dq{m>3694:A,x<678:R,a>3755:A,scs} +qjt{a<3401:rtk,a>3454:ztb,A} +np{x<2860:A,R} +rv{x<763:A,A} +bf{s<1946:A,R} +pjk{s>618:djs,R} +vx{x>1751:A,R} +gfj{x>2306:R,R} +cvg{a<3628:qqn,rts} +dhg{m>1688:zbx,m>1551:A,hbv} +zqr{m<3749:A,x<987:R,a>3895:A,A} +sf{x<1168:qnr,x<1554:jjr,a>3519:dvz,ngc} +blz{x<2324:xnx,m>3634:zz,x>2570:gh,mjn} +zg{a>3363:A,m>3389:A,R} +lxg{s>1646:R,s<1608:A,s>1631:A,R} +vn{s<2757:zr,a<3910:A,a>3961:A,A} +dnl{s>1311:vx,a<3248:A,qm} +qm{a>3722:A,R} +jf{m<994:A,R} +lq{s<3179:A,jd} +lpq{s>3282:vmp,s>2926:A,s<2718:zfz,A} +ls{m<3734:pjh,m>3754:tc,s<3231:R,R} +zh{a<3367:A,s<1566:A,s<1637:A,A} +vf{s>1463:kk,s>1304:A,gx} +kh{x<1450:A,A} +rhv{s>3306:R,A} +pld{s>1209:A,a<3823:A,x<409:R,A} +lfr{x<3457:A,a<669:R,A} +zhs{s<3266:A,a>1355:A,x>2573:R,R} +dpn{m<2862:R,x>2400:A,R} +zl{x>2727:A,x>2192:A,A} +tz{s>1150:R,s>426:R,s<176:A,R} +krs{m<2856:pdv,htm} +tqd{a<2979:A,x<502:A,m<1339:A,A} +ch{x<2847:A,m>1957:R,R} +pqp{m<2055:dhg,m<2603:tp,xxz} +lh{x>1949:gf,a<3601:tdp,m<3635:hd,xmg} +hvf{a>2819:A,x<1830:R,R} +zvv{a<3953:R,R} +dzc{m>950:A,R} +mx{m>308:td,tvp} +xt{m>3743:R,a<3740:nf,R} +zqk{m<516:ft,m<883:bf,x<1639:R,R} +vq{s<2233:A,s<2350:A,A} +xb{m<903:R,R} +lqh{x<2091:R,A} +zr{a>3919:A,x>1276:A,x<690:A,R} +in{m<1457:kf,szv} +xg{m>2358:A,A} +rb{x>1307:R,s>2733:R,hv} +st{a<2850:A,vbf} +tbm{a>3715:kcd,m>2410:rlm,stn} +zjk{s<2242:hz,x<2870:gt,vtz} +shc{a<2332:R,A} +drb{a>3328:hfs,a<3240:jsr,ztx} +tq{m>2044:A,s>1419:R,m>1835:tj,R} +tvp{x<1506:hg,s<2159:lt,m<126:vvd,sz} +dtb{a>2641:R,A} +mbx{m>1293:fn,s<417:zn,rh} +ln{m>136:R,m<83:A,m<110:A,R} +gf{x>2871:cd,a>3436:blz,drb} +hbm{x<756:qns,x<1386:R,m<3894:R,bt} +jsr{m<3426:A,A} +bmb{m>3851:R,A} +nxg{x>1128:qcf,R} +dnz{s>3099:A,R} +qdk{x>1536:R,a<3185:R,xk} +jz{m>573:js,s<809:A,x>1381:vt,pc} +hgq{x>3568:A,A} +db{m<34:A,s<1263:A,A} +hts{a>3856:A,a<3741:A,A} +lsl{m<587:xr,zpx} +dv{a<1753:gdk,R} +mh{x>365:R,m<2574:R,s>3648:R,R} +cc{m<367:A,R} +zpx{a<835:jp,a>1137:spn,zcq} +hv{s<2493:A,s>2632:R,s<2564:A,R} +lnz{s>1813:R,s>1793:A,R} +xsg{x<1276:R,m<3419:jrb,A} +qmk{x<446:R,m<3220:hkr,dnz} +rr{a>3328:A,A} + +{x=555,m=85,a=257,s=1864} +{x=561,m=159,a=473,s=524} +{x=1,m=1419,a=1233,s=675} +{x=1089,m=766,a=1101,s=2378} +{x=1010,m=662,a=1172,s=2016} +{x=2979,m=1043,a=169,s=1191} +{x=100,m=379,a=1959,s=1262} +{x=1782,m=2770,a=3430,s=344} +{x=3185,m=1618,a=156,s=13} +{x=834,m=666,a=1565,s=1106} +{x=2134,m=2304,a=222,s=2574} +{x=1138,m=953,a=296,s=1331} +{x=973,m=84,a=1449,s=1053} +{x=872,m=810,a=918,s=77} +{x=1796,m=994,a=441,s=3453} +{x=2566,m=1336,a=1625,s=72} +{x=596,m=208,a=380,s=1858} +{x=838,m=217,a=620,s=595} +{x=404,m=238,a=2051,s=62} +{x=1150,m=1729,a=227,s=1352} +{x=652,m=255,a=257,s=115} +{x=1,m=632,a=554,s=2230} +{x=1116,m=1646,a=2196,s=691} +{x=1498,m=59,a=503,s=546} +{x=1471,m=3369,a=692,s=190} +{x=1026,m=1795,a=593,s=549} +{x=50,m=1170,a=2057,s=751} +{x=74,m=562,a=926,s=348} +{x=2649,m=597,a=117,s=1675} +{x=651,m=1092,a=395,s=1332} +{x=56,m=1418,a=866,s=1866} +{x=232,m=1836,a=163,s=546} +{x=699,m=472,a=423,s=2767} +{x=150,m=2686,a=637,s=281} +{x=99,m=1703,a=237,s=74} +{x=136,m=3409,a=1103,s=1570} +{x=1409,m=185,a=2260,s=610} +{x=1637,m=2277,a=150,s=27} +{x=515,m=1482,a=298,s=3343} +{x=710,m=820,a=459,s=508} +{x=1337,m=776,a=67,s=607} +{x=1987,m=565,a=2309,s=1127} +{x=724,m=243,a=330,s=863} +{x=73,m=1092,a=790,s=523} +{x=2645,m=3064,a=866,s=389} +{x=895,m=2653,a=419,s=3558} +{x=2098,m=518,a=1856,s=3256} +{x=655,m=194,a=1988,s=1864} +{x=1433,m=1887,a=1790,s=1238} +{x=2053,m=535,a=337,s=958} +{x=244,m=1087,a=2686,s=901} +{x=1170,m=1684,a=411,s=1889} +{x=726,m=1934,a=1618,s=443} +{x=1332,m=1810,a=380,s=422} +{x=649,m=1852,a=1,s=2544} +{x=3146,m=437,a=2784,s=10} +{x=596,m=491,a=2173,s=327} +{x=88,m=207,a=48,s=444} +{x=452,m=40,a=39,s=2294} +{x=99,m=499,a=1671,s=101} +{x=1220,m=1274,a=376,s=297} +{x=2330,m=137,a=100,s=923} +{x=1581,m=687,a=2567,s=317} +{x=429,m=186,a=163,s=1936} +{x=797,m=2500,a=1780,s=2179} +{x=186,m=2375,a=2173,s=363} +{x=320,m=48,a=1853,s=982} +{x=1055,m=2256,a=41,s=914} +{x=527,m=1721,a=119,s=2447} +{x=75,m=126,a=1660,s=393} +{x=18,m=1989,a=10,s=129} +{x=1552,m=142,a=599,s=453} +{x=735,m=1193,a=365,s=2696} +{x=1489,m=6,a=932,s=92} +{x=212,m=2273,a=145,s=1142} +{x=1237,m=200,a=712,s=61} +{x=117,m=1395,a=3696,s=3625} +{x=1004,m=1531,a=1623,s=44} +{x=935,m=1000,a=1599,s=261} +{x=12,m=2868,a=43,s=803} +{x=1335,m=1559,a=2373,s=334} +{x=278,m=409,a=1180,s=948} +{x=1190,m=804,a=267,s=53} +{x=800,m=1523,a=866,s=286} +{x=160,m=3245,a=1135,s=477} +{x=1299,m=2492,a=970,s=105} +{x=2643,m=928,a=56,s=1661} +{x=214,m=2863,a=2692,s=348} +{x=178,m=1747,a=916,s=126} +{x=12,m=302,a=857,s=302} +{x=433,m=120,a=1018,s=3452} +{x=461,m=1048,a=196,s=1933} +{x=665,m=594,a=2435,s=8} +{x=1135,m=2290,a=259,s=741} +{x=886,m=560,a=881,s=278} +{x=1429,m=1225,a=245,s=269} +{x=3164,m=346,a=1088,s=3245} +{x=137,m=248,a=2201,s=451} +{x=190,m=175,a=1798,s=86} +{x=2769,m=2152,a=2079,s=960} +{x=932,m=184,a=52,s=131} +{x=815,m=2580,a=1474,s=3349} +{x=1257,m=1833,a=974,s=16} +{x=593,m=685,a=649,s=1583} +{x=756,m=2884,a=602,s=438} +{x=221,m=399,a=579,s=68} +{x=1368,m=1064,a=110,s=144} +{x=14,m=576,a=1284,s=1241} +{x=2791,m=689,a=76,s=171} +{x=281,m=216,a=264,s=635} +{x=270,m=235,a=1566,s=226} +{x=740,m=1145,a=111,s=415} +{x=194,m=2410,a=272,s=176} +{x=3068,m=259,a=164,s=222} +{x=594,m=191,a=439,s=12} +{x=26,m=256,a=278,s=1457} +{x=276,m=489,a=1479,s=2972} +{x=601,m=216,a=1040,s=1666} +{x=765,m=1805,a=485,s=304} +{x=1533,m=1953,a=658,s=10} +{x=4,m=11,a=766,s=89} +{x=483,m=1013,a=1281,s=1708} +{x=2284,m=49,a=55,s=150} +{x=558,m=254,a=20,s=22} +{x=441,m=330,a=148,s=1761} +{x=1956,m=422,a=2927,s=324} +{x=387,m=1026,a=568,s=3575} +{x=703,m=852,a=293,s=341} +{x=2347,m=258,a=1681,s=3083} +{x=142,m=451,a=450,s=228} +{x=83,m=2112,a=1696,s=60} +{x=2408,m=1812,a=228,s=815} +{x=31,m=952,a=125,s=550} +{x=55,m=2535,a=10,s=3172} +{x=303,m=264,a=161,s=525} +{x=140,m=979,a=548,s=2664} +{x=107,m=1615,a=111,s=2000} +{x=812,m=600,a=349,s=950} +{x=1900,m=724,a=1278,s=1492} +{x=370,m=1483,a=636,s=2186} +{x=314,m=711,a=548,s=1023} +{x=615,m=2745,a=1560,s=1901} +{x=875,m=1076,a=1257,s=129} +{x=1918,m=935,a=250,s=372} +{x=2814,m=894,a=397,s=619} +{x=1894,m=1200,a=1263,s=163} +{x=361,m=2982,a=1094,s=552} +{x=376,m=764,a=3825,s=1272} +{x=197,m=6,a=431,s=2883} +{x=916,m=258,a=1016,s=13} +{x=1550,m=255,a=420,s=193} +{x=2448,m=646,a=951,s=3294} +{x=51,m=47,a=1154,s=1582} +{x=780,m=1994,a=190,s=613} +{x=2125,m=2036,a=419,s=370} +{x=3530,m=653,a=112,s=2043} +{x=830,m=1481,a=1151,s=826} +{x=39,m=605,a=58,s=1708} +{x=605,m=918,a=2267,s=77} +{x=2308,m=436,a=753,s=820} +{x=2078,m=2190,a=460,s=2282} +{x=165,m=2188,a=460,s=416} +{x=2343,m=2285,a=718,s=478} +{x=139,m=578,a=867,s=3364} +{x=212,m=26,a=1613,s=393} +{x=134,m=318,a=237,s=1171} +{x=23,m=233,a=85,s=876} +{x=89,m=157,a=2290,s=1932} +{x=96,m=377,a=49,s=1760} +{x=1064,m=78,a=798,s=160} +{x=1983,m=800,a=19,s=1766} +{x=1157,m=1617,a=1270,s=425} +{x=145,m=1754,a=517,s=915} +{x=98,m=46,a=1762,s=1202} +{x=13,m=359,a=3358,s=348} +{x=1221,m=231,a=81,s=1975} +{x=1523,m=385,a=1671,s=1234} +{x=279,m=96,a=27,s=743} +{x=1718,m=1694,a=886,s=1199} +{x=1640,m=77,a=879,s=925} +{x=239,m=73,a=2374,s=349} +{x=1774,m=319,a=212,s=379} +{x=2525,m=693,a=1126,s=1932} +{x=1842,m=1318,a=714,s=2978} +{x=286,m=1087,a=916,s=70} +{x=61,m=205,a=15,s=2176} +{x=804,m=1845,a=2665,s=664} +{x=79,m=16,a=1376,s=2558} +{x=1018,m=1624,a=1798,s=150} +{x=2670,m=615,a=733,s=229} +{x=1221,m=2070,a=238,s=201} +{x=465,m=947,a=1251,s=1679} +{x=1161,m=1334,a=57,s=1731} +{x=239,m=388,a=42,s=2493} +{x=1540,m=3200,a=849,s=89} +{x=179,m=2098,a=724,s=144} +{x=1605,m=636,a=3162,s=247} +{x=1128,m=145,a=988,s=662} +{x=1716,m=1127,a=1354,s=1470} +{x=2411,m=92,a=482,s=1395} diff --git a/23/elixir/inputs/day19_example.txt b/23/elixir/inputs/day19_example.txt new file mode 100644 index 0000000..e5b5d64 --- /dev/null +++ b/23/elixir/inputs/day19_example.txt @@ -0,0 +1,17 @@ +px{a<2006:qkq,m>2090:A,rfg} +pv{a>1716:R,A} +lnx{m>1548:A,A} +rfg{s<537:gd,x>2440:R,A} +qs{s>3448:A,lnx} +qkq{x<1416:A,crn} +crn{x>2662:A,R} +in{s<1351:px,qqz} +qqz{s>2770:qs,m<1801:hdj,R} +gd{a>3333:R,R} +hdj{m>838:A,pv} + +{x=787,m=2655,a=1222,s=2876} +{x=1679,m=44,a=2067,s=496} +{x=2036,m=264,a=79,s=2244} +{x=2461,m=1339,a=466,s=291} +{x=2127,m=1623,a=2188,s=1013} diff --git a/23/elixir/lib/days/day12.ex b/23/elixir/lib/days/day12.ex new file mode 100644 index 0000000..35a649d --- /dev/null +++ b/23/elixir/lib/days/day12.ex @@ -0,0 +1,103 @@ +defmodule AOC.Day12 do + use AOC.Day, day: 12, input: "example" + # use AOC.Day, day: 12 + + def parse_input(lines) do + Enum.map(lines, fn line -> + [conditions, groups] = String.split(line, " ") + conditions = String.to_charlist(conditions) + + groups = + groups + |> String.split(",") + |> Enum.map(&String.to_integer/1) + + {conditions, groups} + end) + end + + def possible_unknown_spring_conditions(unknown_spring_count) when unknown_spring_count == 0, + do: [[]] + + def possible_unknown_spring_conditions(unknown_spring_count) do + next_list = possible_unknown_spring_conditions(unknown_spring_count - 1) + Enum.map(next_list, &[true | &1]) ++ Enum.map(next_list, &[false | &1]) + end + + def apply_spring_configuration([], []), do: [] + + def apply_spring_configuration([?. | conditions], spring_configuration) do + [?. | apply_spring_configuration(conditions, spring_configuration)] + end + + def apply_spring_configuration([?# | conditions], spring_configuration) do + [?# | apply_spring_configuration(conditions, spring_configuration)] + end + + def apply_spring_configuration([?? | conditions], [true | spring_configuration]) do + [?. | apply_spring_configuration(conditions, spring_configuration)] + end + + def apply_spring_configuration([?? | conditions], [false | spring_configuration]) do + [?# | apply_spring_configuration(conditions, spring_configuration)] + end + + def valid_spring_conditions?(conditions, []) do + not Enum.member?(conditions, ?#) + end + + def valid_spring_conditions?([?. | conditions], groups) do + valid_spring_conditions?(conditions, groups) + end + + def valid_spring_conditions?(conditions, [count | groups]) do + {left, right} = Enum.split(conditions, count) + + length(left) == count and Enum.all?(left, &(&1 == ?#)) and + (length(right) == 0 or hd(right) == ?.) and valid_spring_conditions?(right, groups) + end + + def generate_arrangements(conditions, groups) do + unknown_spring_count = Enum.count(conditions, &(&1 == ??)) + + possible_unknown_spring_conditions(unknown_spring_count) + |> Stream.map(fn spring_configuration -> + apply_spring_configuration(conditions, spring_configuration) + end) + |> Stream.filter(fn possible_conditions -> + valid_spring_conditions?(possible_conditions, groups) + end) + + # |> Enum.to_list() + end + + def calculate_arrangement_counts(input, duplicates \\ 1) do + input + |> Enum.map(fn {conditions, groups} -> + conditions = + conditions + |> List.duplicate(duplicates) + |> Enum.intersperse(~c"?") + |> List.flatten() + + groups = + groups + |> List.duplicate(duplicates) + |> List.flatten() + + generate_arrangements(conditions, groups) + end) + |> Enum.map(&Enum.count/1) + |> Enum.sum() + end + + def part1(input) do + calculate_arrangement_counts(input) + end + + def part2(input) do + calculate_arrangement_counts(input, 5) + end +end + +# NOTE TO SELF: memoize the brute force... diff --git a/23/elixir/lib/days/day18.ex b/23/elixir/lib/days/day18.ex new file mode 100644 index 0000000..aeac05b --- /dev/null +++ b/23/elixir/lib/days/day18.ex @@ -0,0 +1,109 @@ +defmodule AOC.Day18 do + use AOC.Day, day: 18 + + def parse_input(lines) do + Enum.map(lines, fn line -> + %{"direction" => direction, "length" => length, "color" => color} = + Regex.named_captures( + ~r/^(?[UDLR]) (?\d+) \(\#(?[[:alnum:]]+)\)$/, + line + ) + + {String.to_atom(direction), String.to_integer(length), color} + end) + end + + def dig_stretch({y, x}, direction, length) do + Enum.map(1..length, fn n -> + case direction do + :U -> {y - n, x} + :R -> {y, x + n} + :D -> {y + n, x} + :L -> {y, x - n} + end + end) + end + + def execute_dig_plan(dig_plan) do + Enum.reduce(dig_plan, {%{{0, 0} => true}, {0, 0}}, fn {direction, length, _color}, + {terrain, position} -> + stretch = dig_stretch(position, direction, length) + + terrain = + Enum.reduce(stretch, terrain, fn new_position, acc -> + Map.put(acc, new_position, true) + end) + + new_position = stretch |> Enum.reverse() |> hd() + + {terrain, new_position} + end) + end + + def print_terrain(terrain) do + max_y = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 0)) |> Enum.max() + max_x = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 1)) |> Enum.max() + min_y = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 0)) |> Enum.min() + min_x = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 1)) |> Enum.min() + + Enum.each(min_y..max_y, fn y -> + Enum.map(min_x..max_x, fn x -> + case Map.fetch(terrain, {y, x}) do + :error -> "." + _ -> "#" + end + end) + |> Enum.join() + |> IO.puts() + end) + end + + def find_interior_space(terrain) do + max_x = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 1)) |> Enum.max() + min_x = terrain |> Enum.map(&elem(&1, 0)) |> Enum.map(&elem(&1, 1)) |> Enum.min() + + edge_x = + Enum.find(min_x..max_x, fn x -> + case Map.fetch(terrain, {2, x}) do + :error -> false + _ -> true + end + end) + + edge_x + 1 + end + + def flood_fill_terrain(terrain) do + interior_x = find_interior_space(terrain) + + flood_fill_terrain(terrain, {1, interior_x}) + end + + def flood_fill_terrain(terrain, {y, x}) do + [{y - 1, x}, {y, x + 1}, {y + 1, x}, {y, x - 1}] + |> Enum.reduce(terrain, fn next_position, acc -> + case Map.fetch(acc, next_position) do + :error -> + acc + |> Map.put(next_position, true) + |> flood_fill_terrain(next_position) + + _ -> + acc + end + end) + end + + def part1(dig_plan) do + execute_dig_plan(dig_plan) + |> elem(0) + # |> tap(&print_terrain/1) + |> flood_fill_terrain() + # |> tap(&print_terrain/1) + |> Enum.count() + end + + def part2(_input) do + "TODO" + end +end diff --git a/23/elixir/lib/days/day19.ex b/23/elixir/lib/days/day19.ex new file mode 100644 index 0000000..cbb6a08 --- /dev/null +++ b/23/elixir/lib/days/day19.ex @@ -0,0 +1,103 @@ +defmodule AOC.Day19 do + # use AOC.Day, day: 19, input: "example" + use AOC.Day, day: 19 + + def string_to_action("R"), do: :reject + def string_to_action("A"), do: :accept + def string_to_action(workflow), do: {:workflow, workflow} + + def parse_input(lines) do + [workflows, _, ratings] = Enum.chunk_by(lines, &(&1 == "")) + + workflows = + Enum.map(workflows, fn line -> + %{"name" => name, "rules" => rules} = + Regex.named_captures(~r/^(?[[:alpha:]]+)\{(?.*)\}$/, line) + + rules = + rules + |> String.split(",") + |> Enum.map(fn rule -> + if String.contains?(rule, ":") do + {property, rest} = String.split_at(rule, 1) + {operation, rest} = String.split_at(rest, 1) + [count, action] = String.split(rest, ":") + + action = string_to_action(action) + count = String.to_integer(count) + + operation = + case operation do + "<" -> &Kernel." -> &Kernel.>/2 + end + + fn part -> + value = Map.fetch!(part, property) + + if operation.(value, count) do + action + else + :continue + end + end + else + action = string_to_action(rule) + fn _ -> action end + end + end) + + {name, rules} + end) + |> Enum.into(%{}) + + ratings = + Enum.map(ratings, fn line -> + line + |> String.trim_leading("{") + |> String.trim_trailing("}") + |> String.split(",") + |> Enum.map(fn property -> + [name, value] = String.split(property, "=") + {name, String.to_integer(value)} + end) + |> Enum.into(%{}) + end) + + {workflows, ratings} + end + + def perform_workflow([rule | tl], rating) do + case rule.(rating) do + :continue -> perform_workflow(tl, rating) + action -> action + end + end + + def sort_rating(workflows, rating, current_workflow_name) do + workflow = Map.fetch!(workflows, current_workflow_name) + + case perform_workflow(workflow, rating) do + {:workflow, next_workflow_name} -> + sort_rating(workflows, rating, next_workflow_name) + + action -> + action + end + end + + def part1({workflows, ratings}) do + Enum.filter(ratings, fn rating -> + sort_rating(workflows, rating, "in") == :accept + end) + |> Enum.map(fn x -> + Enum.map(x, &elem(&1, 1)) + |> Enum.sum() + end) + |> Enum.sum() + end + + def part2(_input) do + "TOD" + end +end