diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-12-15 03:57:07 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-12-15 04:31:46 +0100 |
| commit | a06ae0bf475fda36bb1cbc5b0b7bbf355c499bed (patch) | |
| tree | 8b0b04ee2097fbfe2f1d426081258ae0033200f4 | |
| parent | b987ec6481ea40e257dc81a8b3ebfc5f0483afe5 (diff) | |
day13 & day14pt1
| -rw-r--r-- | input/day12.txt | 1000 | ||||
| -rw-r--r-- | input/day13.txt | 1301 | ||||
| -rw-r--r-- | input/day14.txt | 100 | ||||
| -rw-r--r-- | src/day13pt1.rs | 70 | ||||
| -rw-r--r-- | src/day13pt2.rs | 60 | ||||
| -rw-r--r-- | src/day14pt1.rs | 23 | ||||
| -rw-r--r-- | src/day14pt2.rs | 23 | ||||
| -rw-r--r-- | src/main.rs | 8 |
8 files changed, 2581 insertions, 4 deletions
diff --git a/input/day12.txt b/input/day12.txt new file mode 100644 index 0000000..c691780 --- /dev/null +++ b/input/day12.txt @@ -0,0 +1,1000 @@ +?#?##?#????.?..?? 9,1 +????????#???#? 1,8 +.??????#???#??????? 2,7,1,1 +???.?.?.???#.? 1,1,1,4 +??#???#?##??. 4,5 +??????##??#???????? 1,10,1 +?#?#??.???.???? 6,1,2 +?#?#??..#???#???#? 6,1,4,2 +??????.?.???#?####? 5,1,9 +.#?#??#.????#?#??#? 4,1,1,5,1 +????..????..??? 3,2,2 +.?#??#.??.? 4,2 +???#????#??? 2,4 +#.??#??#??.????#? 1,3,3,1,1 +???.#?????#. 1,1,4,2 +??#?#?.??#??. 3,1,1,3 +?????#???? 2,4,1 +?.??????.?#?#? 5,3 +.?????#???..? 7,1 +.????????.# 1,3,1 +???#.?.?.. 1,1,1 +?.???.??????#??#??? 2,2,6 +??#???.???????#??# 2,10 +?#??#?.????.???? 2,2,1,1,1 +????#?##??. 1,6 +#?#???#???.????? 8,1 +???.?????#???? 1,7 +?????#?????#?...???# 11,1,1 +?.?#?.??.#?#? 2,2,4 +???#.????#??##. 1,1,3,1,2 +??????.????? 2,1 +???#???#?..??.?#??## 1,7,2,6 +?.??#..#???#???.?? 1,1,5,1,1 +?.???###?? 1,5,1 +???.?.#??#?????.?#? 3,2,1,3,1 +???.??.???? 1,1,3 +.?##????????.. 6,1 +????????#???##?#?#. 1,2,2,8,1 +?##?#?????#.????? 4,1,2,4 +?????#??.?#? 4,3 +?##???.#??.? 2,1,1,1 +???.#???#??????# 5,4 +?.?????#.???#..? 4,1,1,1,1 +.?????#??????..#? 8,1,1 +????#??##?? 4,2 +.??##??#?????.. 1,9 +?.?????????? 1,3,1 +?#??..????..??? 1,2 +??????.?.????? 2,2 +?.??##?.?? 1,4,2 +??#?.#?.#. 3,1,1 +??.?##???????#.? 2,5,3 +???.?#?.?#?#?. 1,1,1,4 +??.#???????.# 1,1,3,1 +??###???#? 4,2 +?.?????#??#???? 1,1,1,5 +?..??.?##?????? 1,1,2,1,1 +#??#.#.?.???? 4,1,1,2 +?#?????#???#??#.#?. 6,1,5,1 +?.?###???.????#??? 1,4,1,1,1,4 +???#?.#.##?#?##? 3,1,8 +??#?#?#??????#??#?.? 1,6,7 +##???#?#.???.? 8,1,1 +?..#??.????#?#??.?? 3,5 +?????#?##??. 2,4,1 +??.???###?.?????.? 1,6,1,1,1 +??????????#?#??? 2,4,1,1,2 +?#???#???#???.?#? 2,9,2 +?#??..????? 1,3 +??#?.?.????#.? 3,1,2 +???#??#?#..???? 2,3,4 +?#.##?#?..???#?##.?# 1,2,2,4,2,2 +???.?..#?.???? 1,1,2,3 +????#?#????.? 1,8,1 +?#?????????#?? 1,1,3,5 +???.#??#????? 4,1,1 +.#????.??? 1,1,1 +??.?????#????#?#? 2,1,2,1,4 +.???.????? 3,1,1 +#????#??##???? 1,9 +????#?#?#??.?#?? 4,1,1,2 +??????..?#? 5,3 +??#?#??#????#???#??. 7,5 +??###?.???#??.#. 5,5,1 +?????##??. 3,3,1 +?.??????#????????# 1,1,12 +.????.????? 1,1 +???.??#??..?#?..?#?. 3,4,3,2 +???????.?#??? 3,3,3 +??#???.?????? 2,1 +?#?.?##?#??## 1,6,2 +.????.??#??#?.... 1,6 +.???.#???#? 1,5 +.?#.???#??? 2,2 +#...??.???#? 1,1,1,1 +#.???.?#.??????????# 1,1,1,1,11 +????#??.?? 4,1 +??#???..??? 5,1 +..??????#?? 1,5 +????##?#?.??????.? 6,4,1 +?.?????????????..? 5,3 +??#???????????##???? 5,2,2,6 +.?#??.??#???# 3,4,2 +????#?#????##? 5,3 +?#?.??.???#???#?##? 1,1,12 +??.???#.????????##?? 1,1,2,1,1,8 +.??????#??? 2,3 +?#?????#?#? 2,4 +.?????..????? 2,3 +.?.???#????.???..?. 4,2 +??.??..????????. 2,2 +??##????#???.?#? 1,10,2 +??????#??.?...? 1,3 +??##???#?.????#????? 6,6 +?#?????#?#?????? 2,5,3 +??#???????#???? 5,4,1 +#?.????..?#?. 1,1,1,2 +????????#??#####? 3,12 +????????#??#? 2,1,6 +????##??.?#. 2,3,2 +.?.?##?.????#???. 1,2,8 +?.#.????.#????? 1,4 +??????????.? 1,1,2,1 +??.????#??##?. 1,1,6 +???.?#??..# 3,3,1 +?????#??????.?#.. 10,2 +...??.???????#???#?. 1,11 +??????.#.??.?.? 3,1,1,1,1 +????.#????#?.#?#?? 2,1,2,1,1,1 +???#?#..#???? 4,1,2 +.????..?#?#??.? 2,6 +.??#??###?#?#??#??.. 4,12 +??#???#??# 2,1,1 +????..#???..???? 3,1,2,1,1 +.#??.???#? 1,1,1 +?#??#?.???#. 1,1,1,1 +?....????##?.??..? 1,1,1,3,1,1 +???.#???????#??.#?# 1,11,3 +.?.?#????#? 2,1,1 +?#??#??#.??#?.?????? 7,2,3 +???????????.?. 1,1,5,1 +??#???####?# 3,6 +??#??#.?????????? 1,4,1,1,5 +??####?##??.#.?. 8,1 +?????#??.?#?#?? 3,2,4 +?.???##?#...?? 7,1 +?#?.#?##?#?????# 1,12 +.?????#??#??#???.?#. 1,13,1 +.??##??#?????# 1,6,2 +??.??.?##????.? 1,1,6,1 +??..????#?#. 1,2,3 +?#?.?#..???? 3,1,1,1 +?.##??????? 2,2 +????#?###??.???# 3,6,1,2 +?#??????#???.??????? 11,3 +???..#?##??# 1,1,5,1 +???#?..?????? 4,2,1 +#?#????.??..?# 5,1,2 +?#???.???? 2,2 +???###?###??.#.? 11,1 +????###?#?#???. 11,1 +??#??????#??? 2,2 +#??.#...??#? 3,1,1,1 +.#.?.?##??#???#.?.#? 1,1,8,1,1,2 +?#???????#..#?? 4,1,1,1 +##??#?#.???.?.? 3,3,3,1 +????.??..????????? 1,1,1,3,1,1 +???????#????. 1,1,4 +???????#????# 1,5,1 +..#??????? 2,4 +??#???.???? 2,4 +.???#??.???##?. 5,4 +?.???##.??????..? 2,3 +.#???.?.??#???#??#?? 1,1,1,10 +.??.#???#???? 2,9 +???????##????????.? 1,10,1 +?#.?.#??#?????. 1,1,1,3,1 +???.????#.?.? 5,1 +?.?#???#??????.? 1,1,2,3,1 +??#??..?#.? 5,2 +.??#?.#.#.?? 3,1,1,2 +??#.?#?.???#?? 3,2,3 +??????#???..?.??.?? 8,2 +??..??.?#??? 2,1,3 +??.???#???? 2,2,1 +??????#???.#??# 1,2,2,4 +#??.#?#?...??????## 1,1,4,1,1,2 +???#????#????.?.???? 12,2 +?#?##?.??????? 5,3,1,1 +??????.??????? 1,2,4 +???..??????..??## 2,3,1,1,2 +?.??..????.?? 1,1,2,1 +#?.???.?..??? 1,2,1,2 +????#.#??#??????#?? 1,2,2,10 +?????###??? 7,1 +?#??#?..???.#?? 6,3,1,1 +?#??.?.?##?#??? 3,1,5,1 +??#??#???#???##? 1,2,1,2,5 +?#?#.#?....??????. 2,1,2,1,1,1 +.????##???..?#. 7,1,2 +???..?.??#?#?.?#. 1,4,2 +??.?.????.#.????#?? 1,1,2,1,7 +?#?????#??.? 1,2,1,1 +???#???#?????? 9,1 +??..???.?##..?? 2,2,3,1 +?.#??????????????? 8,1,2 +??#??#?####??.???? 1,7,2 +#.???..#.? 1,1,1 +?????#..????? 4,1,1,1 +??.???##?#???.# 1,5,1,2,1 +????.??.?#?. 3,1 +#??.???????????##?.? 1,1,13,1 +?#.???###?.?.?? 1,1,5,1,2 +??#??????#?????????? 11,2 +???..????. 1,1,3 +.?????????????? 1,4 +?.#????.???#????? 5,5 +???????.#??#?.. 1,1,1,2,2 +?????.????????????? 1,2,2,8 +.???????#?? 3,3 +??.????#??..?.??#. 1,3,1,1,1,1 +?.#??#???.?? 1,1,1,1 +.??????????? 5,2 +.???????#??? 8,1 +.#?..#???#?.#. 1,1,2,1 +.???#?#???.???? 7,2 +??.?????????#????#.. 2,9 +??##???????#????# 5,1,1,1,1 +?#????#??.#??.??? 8,3,1 +?.#??#?.#?. 1,2,1 +#???????#???#? 2,6,3 +??##?#?.?#?? 4,2,3 +???.#????????.?? 1,1,8,1 +##???.??????#???# 4,1,2,2,2 +??###?.?#???? 4,4 +#?#??.?#?.?.?#?##..# 1,1,3,5,1 +.????#?????#?#??. 2,1,7 +.???###??###????.?? 12,1 +??.???####?.??? 1,5,2 +??#????????.?##??## 1,1,1,1,6 +???##????#????????## 1,5,1,5,3 +.??#?#??#?####??.? 5,8,1 +???#??##...#????? 8,3 +.??...##????.? 1,5,1 +.??#????????#? 7,3 +.???.?##.??????.? 3,3,1,2 +????#??##??#?. 3,5 +??##??#???#.? 7,2,1 +#.??#??#??#???.??? 1,2,7,1 +...???.#.??? 2,1 +#???.?##?###??# 1,2,2,6 +????.?#??.? 2,1,1 +???..?#?#??.#???? 1,6,3 +?..?????#?? 1,1,2 +.?##??.?.?#? 5,2 +###???????#?? 3,2,2,1 +????????#?##??.. 1,1,4,3 +??.?.?#????#?..#.#?# 1,5,1,1,1,1 +.#???#?.#???? 1,1,1,5 +?????.?#?.?#?? 2,1,2,3 +?#???????????#?###? 1,1,1,8 +???#???#.#??? 1,3,1,1 +??#?#????????? 3,2,5 +?.???????#???# 2,6 +??##???##??. 4,5 +????#?.??#??#???#. 4,9 +#??.???.?.??## 2,1,1,2 +?#??.????#?.? 3,2,1 +..#?##.?.##??##???? 4,7 +.??.?##???#???#?.?? 8,1 +#.?????#?????? 1,6,1,2 +?#????.#?.??.#?? 5,1,1,1 +?.?.#?#??????.? 1,1,4,1,1 +??.?#????.??#..#?? 5,2,2 +?#??#????. 2,4 +?#????#??#?.#?? 1,1,5,1,1 +#??##??#??#? 2,3,1,2 +??.?.#???#?.??#?#. 2,2,2,3,1 +.##????.?##.?? 3,3 +#?.???.??#?#???.?#? 2,2,2,2,2 +??.????#???????#?? 2,3,1,1,3,2 +??#??#.#??#???#?.? 1,1,1,5,1,1 +??.????###.?. 1,5 +?#???###?.????? 1,5,2 +????#?#???.? 7,1 +.???#???### 3,1,3 +??#..?#??. 3,4 +?????##?.?? 1,4 +?.??#.??????#?#??#? 1,2,1,5,1 +????..??#?? 3,2 +#.????.?#???##??# 1,1,10 +??????????..?.???? 7,2,4 +?#.????????? 2,3,1,2 +.?????.#??#? 2,4 +???#?????#.????.? 1,7,2,1,1 +..???##?????#?? 8,2 +?#????????? 5,1 +????#?#????. 3,2,1 +???..?..#?..# 3,1,2,1 +.????.???????? 1,3,1,1 +.????#?.???#??##?.?? 1,3,7,1 +..??#?#???..#?#???? 3,1,1,4,1 +.??.?????.?#?##??.? 2,1,6 +???#.?#.??#?? 2,1,1,2 +?.??????#?????????. 1,5,1,2,1 +???##?##?.???#?. 1,6,2,2 +.??#....??.? 2,1 +.??????.?#???.??? 1,2,1 +??.??...?##?##????? 2,9 +.#??#?#?????????.??? 11,3,1,1 +???#??#?#????.???? 12,1,1 +???.????#??? 1,1,2,1 +?#.??#???##????. 1,12 +?.????????#?? 1,2 +.??###??????????#?## 5,1,7 +.#?##.???.?.?.???? 4,1,1,1,1,1 +?#??###??##..?##? 1,7,3 +???#.??.?###?#.? 4,1,3,1,1 +???????##?##??#.. 3,1,8 +??#?#.???#?#????? 4,1,4,1 +?##??#??#?##?? 2,1,6 +#?#?.?##?????. 1,1,8 +????????.#? 6,2 +.??#.?#?#??.?. 1,5 +?.?#?.?.????? 2,1,2 +?#????#??????.?????? 2,1,1,3,2,3 +????????#?.##.?.?? 8,2 +?#????#????????#.??? 5,3,2,1,1,2 +#?#????#..???????#? 1,3,1,4,1,1 +.#???#.???????.#???? 5,1,1,3,1,3 +.??????.?#?##???? 5,6 +?.??#.?????#####???? 1,1,9,1 +#???#????#.??.?## 2,2,4,1,3 +#????#????#.?#???#?. 1,1,1,4,5 +?#????.??. 5,1 +????##?????? 7,2 +?#?#??#?#????.?.#?? 9,1,2 +??##.?##?#??.??..?? 4,4,2 +..??.??????? 2,7 +?#??#.#?##????? 4,1,6 +??.?#?.?#?.?????? 3,1,6 +.#??????.?? 4,1,1 +##??.##??.?##?#???? 4,4,6,1 +??????#?????#?? 10,2 +?##??????? 3,5 +.??????????.#?#.? 9,1,1 +..???#????##??#? 2,1,8 +??????#??#???????# 1,1,1,8,1 +?..???.???#?##?#. 2,6 +?#????##.???#?# 2,3,6 +?#????#??? 4,3 +#?.??????????#???. 1,1,2,3,3 +????????????..?.? 1,4 +##?#??#.?#??.#??# 7,1,1,4 +??.?????????#..???. 1,1,8,2 +????#?????.?#? 2,1,3,2 +.?#??..#??? 3,1,1 +?#?#?????#????? 1,1,9 +#???#?#?#?.? 1,7,1 +#??????##??..?#?#??? 2,6,6 +.??###??????#???. 3,3,3 +?????????????##.?? 1,1,8,1 +????????#.??#???# 9,2,1 +???#????????? 1,6,2 +.?????.???.??.. 5,1,2 +?#?.??????.??# 1,6,1 +???#???.????? 2,1,3 +.#.????#..?##?.????? 1,1,2,3,2 +?#?.?#???#?.?. 2,6 +.##?#.#??#???????### 2,1,1,1,1,4 +????#???.????.#.? 7,1,1,1 +#???.????? 1,4 +##??#???#??????????? 5,10,1 +?#??????..??? 5,1 +.???#??#?##? 1,7 +??..#?#??????#. 2,4,3 +?.??????#??.???.?.?? 3,5,1,1,1 +??????#?.??. 5,1 +#??.??#?.?#?##??#? 3,1,1,5,1 +##?#?.?.#? 5,1 +????#???.? 4,1,1 +.??#?#????..?????? 1,1,3,1,1,1 +??#????#?##???????? 1,1,11,2 +#??.?#?#???.# 1,6,1 +??.??????.? 3,2 +???#?.?????#?##?#.# 4,1,7,1 +????##???#?.??.# 2,5,1,2,1 +?.?###????#?#??#???? 11,1,1 +???#.????.?.?#?#??#. 4,3,1,5,1 +?##?###?????.??? 9,1,2 +??#???.????????#???? 4,1,8,1 +#?#????.???.? 6,1 +?????..??.????.??? 1,4 +.??.???.??.?#??.?.? 1,2 +.?.??#?.??#??#??#? 3,7 +?#?????..????? 4,1,2,1 +????????????#?? 4,5 +??.?#???#??.??? 1,3,2,2 +##??#?.????#??? 6,7 +#?????.?###?##? 1,1,7 +?.??#?#??# 2,4 +?#???????# 1,2,3 +????.????..##? 2,4,2 +???????#?#? 1,6 +???#.??#??.? 1,4 +??###?###??..?????? 11,2,1 +?????.?.??.#?.? 1,1,1,1,1 +?#?????#.?#??. 2,5,4 +??.????#?????#???#. 1,1,2,7 +??###????????.? 4,2,1 +?????.?.???.? 1,1,3,1 +.?#??????#??.??##?#. 4,2,3,6 +?##???#???#?? 2,3,3 +????#????##??????? 1,13,1 +???.??????##.... 2,3 +.#??#???.???.?#?? 1,4,3,3 +#??#?????#?#???##?? 2,10,3 +?????##.??#?#??. 7,1,5 +???#????#??? 5,2 +????#???.?#??#???? 1,1,1,9 +#???##???. 2,4 +.#???..#????#??? 2,2,5 +?????????#?? 7,1,1 +?#??#????.???? 7,1,1,1 +??.?#???#????????? 2,3,6,1 +.?..??#?###. 1,7 +???#????.?#?????? 4,1,2,2,1 +.????#.???. 4,2 +.???????.? 4,1 +.?????????.??#? 1,1,2,4 +.??##?##?????.?# 2,2,1,1,2 +??????.#.?#? 2,1,2 +?#???.???.??#????. 4,3,1,1,2 +??#.???.??? 2,3,2 +.????#????#??????? 10,4 +.#.??#..?. 1,1 +????????..?#???# 2,2,2,4,1 +##??????.???.?#.?? 3,1,1,3,1,1 +###???.?#.?#?#????# 3,2,1,4,2,1 +#?.###??#.??? 2,3,1,1 +???.??#..??.??? 1,1,1,2,1 +??#?..?.?..?##???. 3,4 +?..???#?#?? 1,7 +????#?#????##??????? 10,1 +.?????????.??.??##?? 4,1,1,1,6 +?#???..?????. 2,1,1,1 +?#.??#????? 1,3,1 +.???##?#???#?. 1,4,2 +..?????##??????.? 8,1,1 +?????#?..??. 3,1,1 +????#??#?.?#??. 6,3 +????.?.##?????###? 1,1,2,2,4 +?????.?#???? 2,1 +#???#?#??.#.?. 1,6,1,1 +????#.?.#??#??#??## 1,1,11 +??##?#???#?.?.????? 1,8,1,1,2 +.##??#.?#?? 5,1,1 +.?#???.??????..??? 5,1,3,2 +.???.??????.##???? 3,1,5 +???#?#??#??????.???? 13,1 +??.?#??.?# 1,2,1 +??#????????.??.?.#? 1,9,2,1,1 +??#??#..??#.? 4,1,3,1 +#?.#??#???#???.??? 1,9,1,2 +??#?????????? 1,1,3,1 +????..?.?#?.???? 1,1,1,3,4 +?#??.?#???? 1,5 +?##??.??#.??..????? 2,3,3 +.??.?????? 1,1 +?##?#?##????????.?? 3,1,4,3,1,1 +.???#?#?#?????#?? 4,7,3 +?#??#???..? 4,1,1 +...?###????#?#??#??# 3,8,2 +???#????.??????#???? 2,1,7 +#???????##?####.?? 1,1,1,2,4,1 +??#.????#?????. 1,1,6 +#??????#?.#? 1,1,1,1 +#??#????????.?? 1,1,3,1,1 +?#?#??#??? 3,2 +..????.?#?. 1,2 +??????##????. 5,3 +????????.??#??. 6,1 +.#?##????.?#?#.??? 8,2,1,3 +??#?.????#????? 3,5 +????#???????? 1,8 +??.??#???#?? 1,1,4 +???...???..? 1,3 +..??##??#?#.?##### 9,5 +..?#?.???. 2,1 +#?#???#.#???#???? 1,2,2,2,5 +??#???.??.?? 4,1,1 +..???.?????... 2,1 +?..?#???#?..??#????? 7,7 +?.?...???#. 1,4 +?..?#???#????? 6,2 +??#???????#?????#?.. 2,9 +?#??#???###????#. 1,7,1,1 +???#..?#????.?##??# 4,5,3,1 +.??#..#??.?? 3,1 +????.#?.??..??#? 4,2,1,4 +#????????#. 1,5,1 +????#??.#.??? 4,1,1 +.#?#?#??????? 1,1,8 +???#?????.# 4,1,1 +?????#??#.???.?. 7,1 +??????????? 3,1,1 +##??#?#???????# 5,1,4,1 +?#???##?.??#??#????? 3,3,1,9 +#????#.????#.?? 3,1,1,1,1 +.??#.?#.??#?? 1,1,2,3 +?.??##?##????.??.#.? 1,7,1,1,1 +##???????.? 2,2 +??#??.?#????. 2,1,3 +?....#?#??. 1,1 +??##??.?.??#? 4,1,1,2 +??..?.?????# 1,1,1,1 +.??.?????? 1,1 +????#??..?#?#??#. 4,7 +?##????#.??# 3,3,3 +?#?#????.##?#?? 5,1,2,1,1 +.#?#???.##? 1,4,2 +.??????..?#??? 1,3,3,1 +?##??#??.????? 6,1,1 +.???.??... 1,1 +.##???###???#?#?? 14,1 +#?#?????###?.?????. 3,5,3 +???.?#?#??#?????.?? 1,1,7,1,2,1 +???#?.??##?? 1,4 +#?#.???#???. 3,4 +???.?.???.#???#? 1,1,2,1,2 +..#??????#???? 4,4 +.#???????????#??.. 1,3,6,1 +.????###???#? 1,1,5,1 +?.??????#???...?? 2,5 +?????#??????.??#???? 7,1,3,1 +??#?#..#??.#??? 2,1,2,1,1 +.?#?.?#??#? 1,5 +#???##??????????? 1,10,1 +????#?###?#?.??.?.# 3,8,1,1,1 +??.##????##. 3,1,2 +.??##.?.??? 2,2 +?#?#???????????##??? 11,4 +?.?????#?.????#?? 1,1,1,1,4 +?#?##?????##??????? 2,12,1 +?????????#????.??? 10,1 +???.#???.? 2,4 +?#????.?#.?#?..#?## 2,1,2,2,1,2 +???.#?#?#.?????? 5,2 +.##??#?#??#?? 7,3 +#.????#?#?#????.?? 1,3,7,1 +??##???#???#??.?#?? 10,3 +????#?????#. 4,1 +?????.???? 4,1 +?##??????#?##.? 2,7 +.?##?????#?#?? 6,1,1,1 +???????.???##?? 1,2,5 +.?.??#????#??#??###. 1,1,12 +??#??#???#.????. 5,3,2 +?##??#??.???#??? 8,6 +?##??.???????? 5,1,2,1 +?.???.?.????#???# 1,3,1,2,5 +??#?#????#???#??#. 3,2,9 +?#.??????.??????? 2,1,1,1,4 +?????#?????. 2,1,2,1 +???.??#?#..???# 2,1,1,1,1 +?#????????. 2,1,1 +???#??..??.??#??. 3,3 +????????..?? 2,1,1,1 +.??..??#...?#.???# 1,3,2,3 +?????###??.?? 4,1 +????#?????? 6,1,1 +.???????#??## 3,6 +.?.???#???????#? 1,10,1 +?#.???#??#?#???? 1,4,8 +.??????##??? 1,4 +#??##.?????#???##??? 1,3,1,8,1 +????#????#?###????# 3,1,7,2,1 +??.????###?????? 1,1,7 +?#?#?.???.##? 4,1,2 +????.?..???#?#? 4,1,1,5 +?#???.?#??. 1,2 +#??#????????????. 1,7,1,1,1 +.?#..#?.##?#.??? 2,1,4,2 +??.???.??#????#??#? 1,1,1,6,1,2 +?..#??#.##?.#. 4,3,1 +???###??##????# 1,7,2,1 +###?????###?#??#..?? 13,1,1 +.#?????#??? 1,6 +?#??#??.??.?.? 6,1,1,1 +.#??.?#..?#??? 3,1,4 +??#??.?##??? 1,1,4,1 +.#????#?#.?#?#?##??? 8,7,1 +?#??#?#.???????. 7,3 +#?.??#??##??????. 2,6,2 +.#??#?#??.? 1,5 +.????#??????#??? 2,7,3 +.???#?#????.? 1,4,1,1 +?#..???.#? 1,2,2 +.#??????###????? 6,7 +?.????.???#?? 1,1,1,2 +??..??????.##?##???. 2,6 +.#?#..?#????.?? 3,5 +.#?#?????????? 5,1,1,1 +.?.???#?#??.? 1,3 +???#.?#?..????#?###? 2,2,8 +.?#???.?.???##?.?.? 2,1,5,1,1 +???????..#?##? 2,1,1,2 +.?#?????.??#. 3,1,1,1 +???#????#??.?.#?? 1,8,1,1,1 +?????.????#??#?#? 3,11 +#..?.#????#??#?..? 1,9,1 +#.?.?#??.??? 1,1,3,2 +????.????.?##???? 1,1,2,3,1 +..??.?..???.?.?? 1,1 +.???.##??#??#???? 1,1,6,1,1 +#.#?????????# 1,1,3,2 +#??#?#???.?????.? 1,5,1,1,1 +??.###???..? 5,1 +?#?#??##??#??.??. 4,7 +??#?????????? 5,3 +?#???#???. 2,2 +??#??#?#??#?? 6,1,1 +?.???#.?#?# 1,3,3 +???#??????#???#?. 1,10,1 +?.?#?##?.?? 1,4,1 +#??##??.????#??. 1,3,6 +#.???????#? 1,2,2 +?#?#??.?.?#?#.?#? 3,1,1,3,2 +??#???.?#?????? 2,1,6 +.??#???##???# 1,2,7 +??#??#???#?#?.?.?. 1,1,8,1 +##???.?..??#?? 2,1,1,2 +?#..????.????????#?. 2,2,10 +??##?..?##????###.?? 4,10 +?#?..??.?? 1,1,1 +??????#??..??????.#? 8,1,1,1,1 +???????.#?????..??.? 2,1,5,2,1 +#?#????????##??? 4,1,1,6 +.???#?..?????? 1,2,1,4 +.#..???.??##??. 1,3,3,1 +????#??????#???????? 1,1,5,2,1,1 +?.?###?#?#?#?#?#?.?? 14,1 +?.?.?#??????? 1,3,2,1 +?##????????#?#??.# 5,1,3,1,1,1 +???.???#????? 1,6 +?????####?????#?#? 1,11,3 +?#?.???#??? 1,2,1 +..#??##??? 6,1 +??????.??.. 2,3,1 +.????#?.#???.?? 1,2,1,1,1 +.??##?##??..??###??? 7,5 +#???#??.??.?#.#.?. 1,2,2,1,1,1 +??????#?#??.?? 5,1,2 +#?#??#??????.????.?? 9,1,1,1,1 +#?#..????#?????###? 1,1,1,4,7 +.?.?????#.?# 1,1,2,1 +?.???#?##?????#????? 5,2 +#?????.??? 2,1,2 +?????#??#?#????#?? 13,1 +?.??#????#..?? 5,2,1 +????#??##?.?.? 1,3,3,1 +?.????.?##???#? 2,7 +#?#?????#??.??##?? 6,1,1,1,2 +???#?#??????#???.?.? 4,4,1,1,1 +???#???#?#?.#? 4,5,1 +??.?#???????????. 1,5,4 +.?#.?????#.? 2,2,1,1 +????.?#?###???#?.#.? 2,11,1 +??#??????##?#?? 2,9 +???????#?#?##??????? 3,1,7,1,1 +???##?....??????? 6,6 +?#.?#?.##?#?#. 1,1,2,3 +??????????#? 4,2 +#.?###?#???#?##?#?.? 1,13,1,1 +??#?#?.?.???.??##?? 6,3,4 +???.#?????##?.# 1,1,8,1 +??????#?#?? 8,1 +?#??????#??#?. 6,1,1 +.#?#??#.#?#?#?.? 6,5,1 +?????????#??.??#?#? 7,2,3 +.????#??#????.??#? 8,1,3 +??.?#???##?#??##??? 2,12,1 +?#???###?.???.?? 7,3,2 +#????.#???.???#..# 1,1,1,1,4,1 +????##?.#? 6,2 +??????####?.# 7,1 +????#??.#. 1,4,1 +.????#?????????##?? 15,1 +???.????#?# 1,4 +???????###. 1,5 +#?.?????#??#?? 2,6 +?????##????.#??#.?? 8,2,1 +??####????##???.# 13,1 +?..??#??#.?#?????? 1,3,1,1,1,1 +.#???#???????#??#?? 6,1,8 +??#?#..???? 4,2 +.?#?.?.???? 2,1 +.???????????? 2,1 +????????#?.??? 1,1 +??#???#???. 2,4,1 +#??.????#.?. 3,3,1,1 +?????#.?.?.????. 5,2 +???#???.???? 1,5,1,1 +#.?.?????#????? 1,6,1,1 +?#?..#?#.??.??#?. 2,3,3 +#????..???. 5,1,1 +?#??#?????#???#. 1,3,1,1,3 +???#?????????????.?? 4,2,1,5,2 +????...?..??.????? 2,1 +??.?..?####?#?#????# 1,14 +???###?##??#?# 9,1,1 +??.#??.???##? 1,3,5 +??#??#???????? 1,2,1,2 +?.###??##??.?#.. 9,1 +?????#???? 1,1 +#??????#?#???.?##?. 1,8,3 +.?.??###?# 1,7 +?????????##???.???# 1,2,1,4,2 +?.?#???#???#.???? 2,1,2,2,1 +#????#??????.?? 4,3,1,1,1 +??????????.? 3,3,1 +?????.??#?## 2,4 +?###?#??.????..? 8,2,1 +?????.##???.?? 3,4,1 +#??????.??# 1,3,2 +?#?????????#?.?? 7,3 +????#??#?.??????. 5,1,5 +.?#?#??#?.???### 8,1,3 +??.?#???.???????.? 2,4,1,5,1 +??.??#????.#?#???? 1,1,2,1,1,3 +????????.???# 1,1,1,2 +???#??#?#??.????#. 5,2,5 +??.??.?#?.#?#? 2,2,1,4 +.#????.#???????.?? 1,1,1,5 +???###??????????.?? 15,1 +???????##.??.??# 6,2,1,1,1 +???????.??? 6,2 +????????.?#?#.??#??. 3,3,3,4 +????#?..?.. 3,1 +?#??#?###???##?#?? 2,13 +????###??? 2,4,1 +??.?#??####?.??##??? 9,6 +?#???..???.????? 4,2,1,2 +??#??##???? 3,2 +?#??#?##?????# 1,2,6,1 +..????..???? 4,1,2 +?#????.???..#???? 2,2,2,2,2 +?#????????#??#??? 1,13 +#???..#???????# 1,1,1,7 +#?#.#????.?? 3,1,1,1 +?.???????..?.?? 1,4 +?.#??.????? 1,1,1 +??#?.?????#. 3,3,2 +.?.#??##?##???#? 1,12 +??#????#??.#? 8,1 +??#???..####?#??#? 5,7,2 +???.#?#?????#?????? 1,6,2,2 +??.???????#??##?#.. 1,2,4,4 +#.??????????#???? 1,1,11 +???#?#???#???. 1,4,2,2 +?????.????? 1,1,4 +??????#??##??. 9,1 +??#???#?.??? 6,1 +????.???##?.??.#??? 2,5,1,2,1 +??.#?.?..?#????.?? 1,3 +?#?#.??#.? 3,1 +##??#?.#?????#?????? 3,1,3,1,1,4 +????.?#???#??#?? 1,1,5,2,1 +?????..?????? 4,5 +??#..?#.?.????????#? 1,2,6,1 +?#??#?##???#???#???. 2,8,1,1 +????#????#.????.#? 1,5,1,1,1,1 +?????????# 1,1,2 +??#???##??. 3,4 +?#?????#???#?? 1,1,6 +??#??.#?#???#?????? 2,1,5,3 +??????????#???#. 2,6,1 +?????#?#??????#????? 11,1,1,1 +?????#.?.?...??.?# 1,3,1,1,1,1 +??#.#???#???????? 1,1,10,1 +???#?.????.??#??# 1,3,1,1,6 +#??????#.??#?.? 2,1,1,1,2 +?.???????.??? 5,1 +???#...?#?? 1,1,2 +????.?????????.? 1,8 +?##?#?##?#???###??? 3,14 +??????#???#?#?#???#? 1,16 +?.?????????????? 1,2,1,4,1 +?..?.?#??##?..?????? 1,1,6,2,1 +.?###?#?.??# 7,2 +???#.#????.???? 1,2,3,1,3 +?#.????#????? 2,1,5,1 +#.##?????.#..??#???? 1,2,2,1,5 +??#?##????.#???.?.?? 3,2,1,4,1,1 +?.??#.?????#?#.. 3,6 +????##??#??? 1,1,7 +??.#?##??.? 1,6,1 +??.???#?.??##????? 1,1,6,1 +?#??.????###??.? 2,9 +?????#??#???#.??. 1,7,1,1 +?????????#? 2,3,1 +#?????????.???? 8,4 +??.#?.#?.?? 2,1,1 +.????##?????#?#? 6,4 +#??????.?#????? 1,2,6 +?#???????. 3,4 +???.???##???.??#? 1,8,2 +.#???#??#????#??? 1,13 +?.?????#????? 1,2,1,4 +??.??????? 1,3 +.????#??#?????# 8,1,1 +.??#???#????????? 3,4,3 +#?????#???#?#?.????? 7,4,1,1 +???#.?.#??.??????? 4,1,1,1,4 +???????#?? 3,3 +??#???#???? 3,6 +?????#????.?? 5,1,1 +.???#?#..##.? 2,3,2,1 +?#?.?????#?#?? 2,1,5 +#.????.?????? 1,4,2,1 +???#???..?#??#???. 6,6 +#???.#?#?????#?? 4,10 +#????????? 2,1,3 +?#??#?#.?#?#???# 1,1,1,4,2 +???????##?#?? 2,7 +..??#?????.?#??? 5,3 +..????????.???.? 1,1,2,1 +?.??#????#?? 4,1 +???.??.????.??. 1,2 +.?????????###.?#?? 5,1,3,1 +???.?#????#????? 1,8,1 +??.??.???.??? 2,1,3,1 +?.??###???????.. 4,3 +????????????.#??? 3,3,1,2 +???#?.#?###??#??? 1,3,5,1,2 +?#??#???..??#?.. 7,4 +#.??##?????. 1,1,4,1 +?.??.#????#?#??#? 1,1,12 +????#??#?.? 7,1 +????#??.?? 2,3 +?..??#?.????# 3,1,2 +?.#?#???#???.#? 1,5,3,1 +##??#?#???###?? 2,11 +???#####??????? 2,10 +??#?#?#?.?. 6,1 +????..????..#?#. 1,1,3,1,1 +.#?????#???##?#??? 14,1 +#.??.?.??#.?.?? 1,2,3,1,1 +?#??????.????.???.? 3,1,1,2,3,1 +?.?.???#?? 1,1,2 +??#?##????? 4,1 +?.?#??.??. 2,1 +??.???#.?? 1,1 +##.?.?#?????.#? 2,5,1 +?##?#.???????. 5,1,4 +..?##???#.???? 6,2 +.???.??????#?#?. 1,7 +?????#.??#? 2,1,2 +.#?.#?????????? 1,1,1,5,1 +???.?????##??..? 2,1,1,4,1 +?????##..? 5,1 +#?????????#???? 1,3,1,3,1 +?#????..???????##? 1,1,10 +???#????#.??.????#? 1,2,1,1,2,6 +??##.?.???.??..#? 3,3,1,2 +?.?#?#?.???#?#??? 4,4 +?##???.??#?.? 2,1,1 +#?.??##??.?.#?????? 1,6,1,1,1 +???#??#???.?##?? 7,3 +?##??.?.?#????????#? 3,2,1,1 +?..?#?.##?#?.? 2,5 +?..??????? 1,2,2 +??#?????.#???#??. 4,7 +????.?????.. 2,4 +.??#?.??.??..??????# 3,1,1,4,1 +#???#?###??##?.? 1,11 +??#??.???????#??#? 5,10 +?.??#?..##?. 1,3,3 +??.???.?.? 2,2 +#??????##?##.?? 4,6,1 +???????.?#????.?? 2,1,2,3,1 +.??#???#???#?##.#.?? 13,1 +??.??#?#?? 1,5,1 +?#?#?#.?????.?? 2,3,2,2,1 +????.???#????#? 1,1,2,4 +.?????.????#. 2,1,1,1 +.???.????.?? 1,1,1,1 +?.????.?#.??#. 4,2,2 +??????.?.???#?? 1,1,5 +????????.?#???#?? 5,5 +????####??##?? 7,5 +.??##??????.???.? 10,1 +#??#???#??#??? 1,3,4,1 +.#???.????? 2,3 +..??#??#??#??#?? 2,8 +??????##??.???? 2,1,4,1 +??????##??????????? 1,5,5,1,1 +??#?.??????.?????? 3,1,1,1,1,2 +???#.?#??? 2,2 +##.??????#????# 2,2,8 +?#????????? 5,3 +?#?..????.?# 2,1,2 +#??.?.#???#????# 1,1,1,3,1 +?..??.??????? 1,1,1,2 +?#?.?######?#???? 2,7,1,1 +??##???.?###? 5,3 +??#.??##..???????? 2,4,4 +??????.#.??##?. 2,1,5 +????#?.??? 1,2,1 +.???????.?.? 2,2,1 +?????#???????? 2,3,2,1 +?.??.#?#?# 1,5 +??.???.?????.?? 1,2,1,1,1 +???.?..??? 1,1,2 +????.?.??.? 1,2 +?.????#??? 2,3 +?????#???????.?? 7,2,1,1 +???????.?## 1,4,3 +?.?#?????? 4,1 +??????#????#..?????? 11,3,1 +#?##????##???##.? 4,1,7,1 +?#???##??????##?#? 2,3,1,4,1 +??..#?????#??.?? 1,9 +?###.????.???#???? 3,2,1,6 +???#????.????##??. 3,1,4 +????#???.?##?. 1,1,2 +.???#??##?#?# 1,6 +#??.?????.?.? 3,4 +?.??#?#?#????? 8,1 +?????.????? 1,1,2 +?.#???#????????#.#? 1,8,4,2 +???#???#??#??????#.? 6,1,2,2,2 +????.???.??????#? 2,1,7 +??#.?????.?. 1,2,1,1 +?#?##???.?#???????# 1,5,1,2,1,1 +??????#?#.??? 3,3 +??##??????..#??. 7,2 +????.?.??.? 1,1 +?????#??#? 2,1,2 +???#?.???????# 4,1,3 +??##????#?#?? 5,1,1,1 +??##?.#?.#????????. 1,2,1,1,1,4 +?.??.???.#. 2,1,1 +???#??#?????###???.. 9,6 +???????.???#.?# 1,2,3,2 +???#?.####??????. 1,3,6,1,1 +#?#??#?????###?#. 1,8,3,1 +???#?????? 1,3,2 +#?#??????#??#?.?? 13,2 +.?????#.??#? 1,1,1,2 +.###..?.???#??.?? 3,1,6,1 +#??#???#?..?????###? 1,6,3,3 +.??????#???. 1,3,1,2 +#????#??.??????#?? 1,1,1,1,1,5 +?????.??#??#???#?? 4,11 +????#???#??????? 6,1 +.??##?.?..?.#??#. 4,1,1,1,1 +???#?????#??? 2,5 +#?????.?????.?#? 3,1,5,3 +??.#??#?#.? 2,1,1 +?#.?????????.?. 1,7,1 +###???#?????#????#.. 13,1,1 +..???????.?.#.?? 1,4,1,1,1 +??.#?#????????? 3,1 +.????????.??#?#??? 5,7 +?#.????????#???.? 1,2,1,4,1 +?#.??##????#??#####? 1,6,8 +???.?#?#???#?#. 2,5,3 +##..?#????.# 2,6,1 +#??#.#???##.. 1,1,1,4 +.?.?##?????.?? 3,1 +.#..#.??#??#?##?##.. 1,1,11 +.?.?????##???#?. 1,7,3 +?#???#????#???# 2,3,2,1 +?##?#????.?# 7,1 +?..??#?????? 1,1,1,4 +..#?.?#?.???#???#? 1,2,4,3 +????????.????? 3,2,4 +???.???#?.?...# 1,1,2,1 +#??###???#??? 6,2 +?.?.?.?.#.?? 1,1,1,1 +.?##?#??.??#???##?. 5,7 +??.?????#?????? 2,9,1 +.?#..?##??..#??# 2,4,4 +????.??????#?????? 1,9,2 +.????.##???? 1,2,4 +.???.??.#?? 2,1,2 +..???#???? 1,3 +.??#???..?? 2,2,1 +?#?#?????????.???? 13,2 +???.??#??... 2,3 +???.?#????#??. 1,6 +?.??##??##????? 8,1 +?.??#?###??#.?#?? 9,1 +??###.?????#????##? 1,3,8,2 +?????#??#.#.???###? 1,5,1,7 +?...?#????. 2,2 +????.??#?.???? 2,3,2 +??.?????#.. 2,3 +#??#??????.. 2,2,2,1 diff --git a/input/day13.txt b/input/day13.txt new file mode 100644 index 0000000..10b98c7 --- /dev/null +++ b/input/day13.txt @@ -0,0 +1,1301 @@ +#....#. +#....## +.####.. +.####.. +#....## +#.##.#. +.####.# + +.#...####.##..# +..#.###...#.##. +..#.###...#.##. +.#...####.##..# +.####..##.##..# +.####.#.###.##. +####..#.####### +#.......####..# +####.#.#....... +..#....##.##### +.##.##...##.### +..#.#.#.##..... +.....##.#..#### +##..#.###..#### +.##..#...###### + +..#..#. +#....#. +...##.. +.##.#.. +.####.. +..#.#.# +....### +#..#.#. +#..#.#. +....### +..#.#.# +.####.. +.##.#.. + +##.###...#.## +##.###...#.## +###.#####..## +##....#.##.## +#....#.#.#### +.#....###.... +#....#...#### +.##.##.####.. +..#.##.###.#. + +#.#...#...##...## +#.#...#...##...## +#....##....#..... +##...##...##.##.. +#..##..####....## +.....#.##..#.###. +#.......###..#... +..####.#.#.###..# +#..###.#.#.#####. +.....#.###....### +.....#.####...### + +##....##. +##.##.### +.#.##.#.# +..#..#..# +........# +........# +..#..#..# +.#.##.#.# +##.##.### +##....##. +.##..#... + +##..#.. +...#### +..#...# +..###.. +##.#### +##.#.#. +......# +....#.# +##.#.#. + +##.#.##.# +...#..#.. +.##...#.. +.##...#.. +.#.#..#.. +##.#.##.# +.#...#### +..#.#..## +...#...## +.#....#.# +.#....#.# + +#.######.#..### +.#..##....#..## +####..####.##.. +###.##.####.... +####..#######.. +.#......#.#.#.. +.#......#..#... +#..#..#..#...## +#.#.##.#.##.### + +.......## +#####.#.. +#..##.#.. +#######.# +....##### +.##...... +####.#... +######.## +.....#### +#..#.#... +.##.#..## + +#.######.#.#. +##.##.###...# +#.....#....## +.#.......###. +.#.......###. +##....#....## +##.##.###...# +#.######.#.#. +#.#.##.#.#.## +..#.########. +..#.########. +#.#.##.#.#.## +#.######.#.#. + +#.#.##. +..##..# +.#.##.. +#..##.# +#...#.# +....##. +.#..##. +..#.#.# +..#.#.# +.#..##. +....##. +#...#.# +#..##.# + +...#..#.##..# +..#.#..#.#### +..#.#..#.#### +...#..#.##..# +###..#..###.. +...##....#### +##..#..####.. +##..#.##....# +#..#..#.#.#.# +##...#..#...# +...###..#.### + +.##..#.## +##.###.## +##.###... +##..#.### +..#.#..## +##.###... +...###### +###..#### +..#...#.. +..#....## +..####.## + +......###..## +###.######.#. +..###...#..## +...##..#..... +...##.##.#### +###..#.##.#.# +###..#.##.#.# +...##.##.#### +...##..#....# +..###...#..## +###.######.#. + +#..#.#### +.#.#.###. +.###.###. +#..#.#### +#...#...# +#...#...# +#..#.#### + +#.#...##. +##.##.... +..#.##..# +..#.#.##. +#.##.#.## +###.##..# +####..... +##..#.... +##.##.... +##.##.... +##..#.... +####..... +###.##..# + +#.#.#.##. +...#.#.## +...###.## +#.#.#.##. +#####..## +.#..##..# +####.#.## +....#.##. +.#...#.#. +.####.#.# +#..#.#.#. +..######. +..#..#... +#.#.##### +#.#.##### + +.#.###### +#...#.... +#....#### +#....#### +#...#.... +.#.###### +##...#..# +###..#... +#.#.##### +..#.#.... +.#.#..##. +.##.#.... +.####.##. +#.##.#### +#..###### + +###....###... +...#..#....#. +..........### +.###..###.#.# +...#..#...### +###.##.####.. +###.##.###..# +#.#....#.#.#. +...####.....# +##......####. +##......##.#. +#.#.##.#.##.. +#.##..##.#.## +#.#....#.#.## +#.#.##.#.##.. +##......##.#. +##......####. + +#...#.##..### +.#.#####.#### +#..#..####### +#....##..#.## +.#.###..##.## +.##...##..... +.##.####.#### +.##.####.#### +.##...##..... +.#.###..##.## +##...##..#.## +#..#..####### +.#.#####.#### + +..#..#### +#...#..#. +..#.##.#. +.#####... +#.##....# +#.##....# +.#####... +..#.##.#. +#...#..#. +..#..#### +..##.#### + +.#.#.#..##.## +.#.####.....# +..##......#.. +###.#..##..## +###.#..##..## +..##.#....#.. +.#.####.....# +.#.#.#..##.## +.#.#.#..##.## + +....#...###....## +.#.#..##..##..### +.#.#..##..##..### +....#...####...## +####.#..#...##... +......#.#..##...# +#....##.#.##...## +#..####.#....##.# +#..####.#....##.# +#....##.#.##...## +......#.#..##...# + +#.#.#.#.##.## +#.#.#.#.##.## +.#..#.#.##.## +####.##.#...# +.###.##..###. +.###.#.#.##.# +#......##.##. +.##.#..###.## +####....####. +####....####. +.##....###.## +#......##.##. +.###.#.#.##.# + +######....... +######....... +......####### +#####.##.#..# +####..#..#.## +##..##..##### +##..#####.### +#..#...##.#.. +.###.##..#.## + +#....##.. +#######.# +#....#.## +.#..#..#. +##..##.#. +##..###.. +##..###.. +#....###. +......#.# +##..##... +##..##... +......#.# +#....#.#. + +.........#### +#..##..#.#... +.........#... +........##... +.#.##.#..#### +#......###### +#.####.#.#### +.#....#.#.#.. +...##....##.. +#.#..#.##..## +#..##..#..... +.........#... +..#..#....... +.######.##.## +##....#.#.... + +....########..... +#..##......##..#. +#..##......##..#. +....########..... +..#.#..##..#.#..# +###.#......#.###. +#..#.##..##.#..#. +.....#...##...... +#...###..###...#. +...##########...# +......####....... +...#...##...#.... +##..########..##. + +#..#####..# +###.####### +######..... +....#.##### +........##. +#..#..#.##. +######.#..# + +###.### +##.#.#. +##.###. +..##.#. +...#... +####.#. +..#...# +######. +##....# +..####. +##.#... +##.###. +..##### +..##.#. +###..## +###..#. +..##.#. + +.#.##.#.# +...#..... +...#..... +.#.##.#.# +.#.#.#..# +..#..#.#. +#..##.##. +.#.#..##. +##.....#. +###.#...# +###.#...# +##.#...#. +.#.#..##. +#..##.##. +..#..#.#. + +...#.#..# +###.##### +.#.#..... +###.##..# +.##.#.##. +.#.#.#..# +.#...#..# +###..#### +###.#.... +###.#.... +###..#### +.#...#..# +.#.#.#..# +.#..#.##. +###.##..# + +..#..#...#. +##....##... +.##..##.#.# +#......#.#. +##....###.# +#.#..#.##.# +.#.##.#..#. +#.####.#..# +#.####.#.## + +#.##.## +.#..#.. +#.##.## +.####.. +..##.## +.####.. +##..### +.####.. +#....## +.#..#.. +..##... + +..#.#.#.. +#...#..#. +#...#..#. +..#.#.#.# +..#.#.#.# +#...#..#. +#...#..#. +..#.#.#.. +.###..... +.####.### +..#.###.. +...#.#... +#.##....# +..####... +#####..#. +.#.##.#.. +##..##.#. + +.###.###..##...## +...####..#.##..#. +..#.#..##...###.# +#..#.##..####...# +.#..###...#.##.#. +.##..##.#.##.#.## +.##..##.#.##.#.## +.#..###...#.##.#. +#..#.##..####...# +..#.#..##...###.# +...####..#..#..#. +.###.###..##...## +..####...#..####. +..####...#..####. +.###.###..##...## + +..##..### +##..##.#. +#######.. +......#.. +..##...## +#.##.##.# +......### + +#######.#.###.##. +..##....##..#.#.. +..##....##..#.#.. +#########.###.##. +#..#####........# +.#....###.####... +.....####.##..#.. +#..#.#.##...#.... +#..#.#.##...#.... + +########.####.. +#......#.#..### +#......#.#..### +########.####.. +#.#.#.####..#.. +..#...##...#### +##...#.#..#.### +#.#.#.#......## +.##....##...### +####..#.##.###. +.#..###.#..#.## + +.####.... +.#...#.#. +.#...#.#. +.####.... +##.#...## +#.##....# +#..#..#.. +###..###. +###.###.. +#.###.#.# +#.###.#.. + +##..##.#. +.####.### +#....###. +.......## +#.##.#..# +##..###.. +......##. +.####.### +##..##... +#....###. +##..###.. +#.##.#..# +#.##.#.## + +#.....#..## +#.....#..## +.#.#..###.. +..#.#..##.# +..##.###### +#...#...#.. +#.##.#..... +...###.#... +#.#...#.### +..#.##.#... +#..#.###.## +.##...##... +#.#..##..## +###.####### +..###...#.. +..#.##.##.. +##..##...## + +#..##.. +..#.##. +#.#.#.. +#.#.#.# +..#.##. +#..##.. +.#...#. +.###..# +.###..# + +..##....#..##.### +.####....#.##..#. +.####....#.#...#. +..##....#..##.### +.......#.##.##### +.####....#####.## +##..##.###...##.. +.......##...#.#.# +##..##..####....# +.####..##.##.#### +########......### +.#..#...#.#.###.# +#.##.###.##...... +..##...#.##.##... +#.##.##.#.#...#.# + +#.#.#.### +..##....# +..#..#... +###.#.##. +.####.... +#.####.#. +##.####.. +..###.### +..##..### +#..####.. +#..####.. +..##..### +..###.### + +.#..... +#..#### +.##.##. +###.### +.....## +.....## +###.### +.##.##. +#..#### +.#...#. +.#...#. +#..#### +.##.##. + +....##....#.##... +#........##...... +..#.##.#...#...## +##......##.###.## +##.####.##...#### +..##..##......#.. +##.#..#..#..#..## +..#....#..###.### +.#......#..##.#.. + +#..#..###...# +#.#.##.###### +#.#.##.###### +#..#..###...# +####..#..##.. +...#.#.#..##. +#...#.##...## +###.###.##..# +#..##.#...#.. +#..##.#...#.. +###.###.##..# +#...#.##...## +.#.#.#.#..##. + +###.#.####. +####.#####. +##########. +###.#.####. +....#.#.#.# +...#....... +....#.##### +#####.#.##. +##.....###. +....#...#.# +##.#.##.#.. +##.....#### +..#.#...#.# +##......#.. +.....#.#.#. + +###....#..##. +####...#..##. +###.......#.. +#..##....##.. +##.##...#..#. +.#...#.##..#. +.#...####..#. +#...#..##.### +##..######.## +#.##......... +####..##.##.# +###...##.###. +###...##.###. + +.#..###..##.. +.#..###..##.. +###....#....# +...#.####.#.. +#.#..###...#. +..#.##.#.##.. +..#.#..#.##.. +#.#..###...#. +...#.####.#.. +###....#....# +.#..###..##.. + +#..####..## +.########.. +.#..##..#.. +####..##### +..#....#... +.#.####.#.. +#..####..## +#...##...## +.###..###.. +.#.#..#.### +.#.####.#.. + +.#..##. +.#..##. +##.#.## +##.##.# +.....## +#.#.#.# +.#.###. +.#.###. +###.#.# +.....## +##.##.# +##.#.## +.#..##. + +#.....#..#. +####.#....# +.##...#..#. +#...#.#..#. +#.###..##.. +##.#...##.. +###.#..##.. +#.#.###..## +###...#..#. +.##.#...... +.####...... + +###.###..## +###.###..## +##.#..##.#. +.#.#.#.#..# +..#....#.## +###.##..#.# +......##### +..###....#. +#.......#.. +#.#.#.###.. +.#.##.###.. +..#.#....## +###..###... +#...##.##.# +#...##..#.# + +####..######..# +.###..#.##.#..# +....##..##..##. +#.#....#..#.... +..##..#.##.#..# +#.##..#.##.#..# +#...#..#..#..#. +####..##..##..# +.###..######..# + +.#.####.#.. +.########.. +.##.#..##.. +#.#....#.## +#..#..#..## +#.#.##.#.## +.###..###.. +#.#.##.#.## +..##..##... +.#.#..#.#.. +.###..###.. + +####.## +.#....# +##.#.#. +..##.## +...#.## +#####.. +.#.#### +.#.#### +#####.. +...#.## +..##.## + +#..#### +.###.## +#..##.. +#..#### +.#...## +.###.## +####.## + +.........##.... +###..####..#### +.#....#..##..#. +.##..##.####.## +.##..##......## +..####...##...# +.######......## +##.##.###..###. +.##..##.#..#.## +#..#...######.. +..####........# +.##..##.####.## +.######..##..## + +....#.##.##.. +#.##.#....... +#..##.#.#.### +.##....###.## +#..###..#...# +....###.##### +#..##....##.# +####.#...#### +.##.##...##.# +.##.##...##.# +####.#...#### + +#......## +.#.###### +##.#.#... +#.###.### +..#####.. +#......## +#......## +..#####.. +#.###.### +##.#.#... +.#.###### +#....#.## +##.#.#### + +###....#. +#..####.# +....##.## +.##.##.#. +.##.#...# +.##....## +.......#. +.......## +.##.##... +####...#. +.##.#.#.. +.##..###. +.##..###. + +#.##..#..#. +....###..## +#.#....##.. +##.##..##.. +##.#.#....# +..#...####. +..#...####. +##.#.#....# +##.##..##.. +#.#....##.. +....###..## +#.##..#..#. +.#.##.##### +#....##..## +..#.###..## + +..#..##.# +....####. +...#...#. +#..##..#. +.#.##...# +#.#.#.... +#...#.### +#..##.### +#.#.#.... +..##.##.. +....##### +....##### +..##.##.. +#.#.#.... +#..##.### +#...#.### +#.#.#.... + +##########... +###...#..#... +###.#.#..#... +##########... +##.#######.## +##.....#...#. +#####..#..##. +##.###....... +...#..##.#..# +..##...##.##. +####.#.#.##.. + +####.###..# +####.##.#.# +....###..## +##...#.#.#. +###.#..#..# +###.#..#..# +##...#.###. + +..###...##... +...##.######. +##..###....## +...#.#......# +...###......# +##.###.####.# +.#....######. +.....#..##..# +..########### +###.#.######. +###..#......# + +###.###.###...##. +##.##.######..##. +.#####..#.#.##..# +.##.#..##.##.#### +..##..##.#...#### +.###..##.#...#### +.##.#..##.##.#### +.#####..#.#.##..# +##.##.######..##. + +....##. +#.#.#.# +..##... +.#.#.## +.#.#.## +..##... +#.#.#.# +....##. +##..#.. +.#..#.. +....##. + +..###...... +.#.##...##. +##.#..###.. +##.#..###.. +.#.##...##. +..###..#... +..####..#.# +.##...#...# +.##...#...# +..####..#.# +..###..#... +.#.##...##. +##.#..###.. + +..##..#.#..#.#. +##..#####..#### +##..####....### +.#..#..######.. +##..####....### +.#..#.########. +##..##........# +..##....####... +#.##.#.#.##.#.# +######.#....#.# +.####....##..#. +.......#....#.. +.####.#.#..#.#. + +..#...####### +.#..##..####. +....#..#.##.# +.....##.####. +#...##....... +##..##.###### +#.#.#....##.. +.###.##.#..#. +.##..#.#.##.# +.##..###.##.# +.###.##.#..#. + +.###..#...##..### +##...#.#.#....#.. +##...#.#.#....#.. +.###..#...##..### +#.###..##....#..# +#..##.#######.#.# +..####..#.####... +.#...#.##...##.#. +.#...#.##...##.#. +..####....####... +#..##.#######.#.# +#.###..##....#..# +.###..#...##..### + +####.#... +.....#### +#######.# +....#...# +.....#.## +....##.## +####.#..# +....#.#.# +.....#... +.....###. +......### +.##...#.# +....#..## + +##.#.######.# +....#..#..##. +..#####.###.# +###.###..#.## +###.####.#### +..#.##.#..#.# +#####...#..## +####.#....#.# +###..#....#.# +#####...#..## +..#.##.#..#.# +###.####.#### +###.###..#.## + +.#.#..##..#.#.. +..###.....##... +...###..###.... +#.##......##.## +.##........##.. +.#...#..#...#.. +####.#..#.##### +##.###..###.### +.#.#.#..#.#.#.. +.#.#.####.#.#.. +....######..... +.###..##..###.. +##..#.##.#..### +.##.######.##.. +.#..........#.. +##..######..### +.#..........#.. + +#.....#.###.. +..##..##...#. +###.##.#..#.. +.#.###.####.# +.#.###.###### +.#.###.###### +.#.###.####.# + +##.##....## +##.##....## +#.###....## +##..#.##.#. +#.###.##### +.#.#.#..#.# +#.##.####.# +..##.#..#.# +###.##..##. +#...######. +##..#.##.#. +#....####.. +....#....#. +.#.#..##..# +#...#....#. + +#..#### +#...### +.#..#.. +#....## +.#..... +.##..## +..#.#.. +.....## +#.##.## +.#.##.. +.#.#### +#....## +#..#... + +##...#... +.###.##.# +#.###.#.# +###..#### +###..#### +#.###.#.# +.###.##.# +###..#... +###..#... +.###.##.# +#.###.#.# + +....####..### +...#####..### +.#.#..######. +...##..#..#.. +#.#####....## +#.....##..##. +#....######## +.#.#....##... +....##..##..# +.##...######. +#.##.#.#..#.# +......######. +#...#...##... + +##.#.#.#... +..#.###..## +##....#..## +#.#.##.##.. +#.#.##.##.. +##....#..## +..#.###..## +##.#.#.#... +.......###. +.......###. +.#.#.#.#... +..#.###..## +##....#..## + +##.#..# +###...# +#...##. +##..... +..#.... +.##.... +##.#### +##.#### +.##.... +..#.... +##..... + +#..##..##..#..#.. +#.########.#..#.# +.#...##...#.##.#. +..###..###......# +.###.##.###.##.## +.#.######.#.##.#. +##..#..#..######. +.###.##.###.##.## +.#..#..#..#.##.#. +.#..####..#.##.#. +...#....#........ +....#..#......... +....#..#......... +..##.....#......# +.#.#.##.#.#.##.#. +#.#..##..#.####.# +###..##..###..### + +##.##.####### +..#.....#..#. +#.###....##.# +.##.###...... +..#.###.#..#. +..#.###.#..#. +.##.###...... + +##..#..##.. +###.#.#..#. +#.####....# +.....##..## +#####..##.. +....#.#..#. +..##.###### +##.##.####. +#.#.#..##.. +.####.####. +#.....####. +#...#.####. +.####.####. +#.#.#..##.. +##.##.####. + +##.###....####. +####.#.###.##.# +.##.###....##.. +.##.#.###.#..#. +.....###.###### +......#.###..## +.##.##.#....... +#####..####..## +#..#...######## +####.######..## +....#..######## + +..#..#.###..# +.###.#...#..# +..#.###.##### +.##..##.#.##. +.##..##.#.##. +..#.###.##### +.###.....#..# +..#..#.###..# +.#..##....##. +##.##.#...##. +#.##.#...#### + +..###.##### +.#.######## +.#####..#.# +.#....##.#. +.#....##.#. +.#####..#.# +.#.######## +#.###.##### +#.###.##### +.#.######## +.#####..#.# + +.#..#.#.# +......##. +##..##.#. +##..##... +......##. +.#..#.#.# +##..##..# +##..###.. +######.## +#######.. +#.##.###. + +.###### +#...... +#...... +.##..## +.##..## +#...... +#.#..#. + +.#..... +#.....# +..##.#. +#.##... +..####. +#.#.#.. +#.#.#.. +..####. +#.##... +..##.#. +#.....# +.#..... +...#... +...##.. +#...... +#...... +.#.##.. + +.....#. +#.##... +#.##... +..#..#. +..#..#. +#.##... +#.##... +.....#. +##..#.# + +...##.... +#.#..##.. +#..###.## +###...... +.#..#..## +#....#... +.##.##### +..#...... +.#.....## +#.#..#.## +..##.#### +..###.### +..#.#.### + +.##..#.###.## +.##..#.###.## +.#...#..##.## +...#.#.#.##.. +#..####.#...# +#.##.#...##.. +.##.#.#..#.#. +....#.#####.. +#.##.###...#. +..###.#####.# +..###.#####.# +#.##.###...#. +....#.#####.# + +.##.##.#.###. +#..##.##..#.# +#.#######.##. +.....#..###.. +.#######.#.#. +.#####.#.#.#. +.....#..###.. +#.#######.##. +#..##.##..#.# +.##.##.#.###. +##.#.###.#### +##.#.###.#### +.##.##.#.###. + +###..###. +.#....#.. +.#....#.# +.#....#.# +.#....#.. +###..###. +.#....#.. +##.##.### +...##.... +########. +#.####.## +#.####.## +.######.# +..####... +.#.##.#.# +#......#. +..#####.. + +..#..#..### +#.#.#...### +#.#.#...### +..#..#..### +#...#..##.. +#..##.#.... +.#.###.#.## +#.....#.... +##.##.##..# +#..##.##..# +#.....#.... diff --git a/input/day14.txt b/input/day14.txt new file mode 100644 index 0000000..5ad82d9 --- /dev/null +++ b/input/day14.txt @@ -0,0 +1,100 @@ +.O.....##O.O#..O#....##O#.#.#..##O#..O.....#.OO..O.O.O.O...O....#O...OO....##.O..OO.O......O..O..... +....O..#O....#...#OO..#..#..O.....#O......O.O.#..OO..O....#..#.OO....##O...O..##...#.O...O.#...#.O#. +.O.O#.O...O...O....O...O#....#.#O#...O...#.#..........O#...O#O..O..#.OOO..O.O.....O#.........#O...O. +.O....O.OO.#.....#.#O......##O..O.O.##.#..O##O.O.#OO....O.O..O#.OOO..O..#..##.#...#.O.#O.#.#.....O.. +..O......O..O.O.#.OO.OO...#.O....#...#O..OO.#.O......O....O.O.....O.#.OO..O.OOO.......O.O...##O...O# +.O.O.........#.O#.#OO##..#OO..OOO#....#....O.O..#.O......#.OO..#..O.O..O.O..#....#.O#..OO###.....#.. +.O..#.#.OO.#...........#..O#....O..O.O#.......#.OO.#OO....O.#O.#.....#.OO.#...#..O..O##.O.O##..#.#.O +..O..#...#..OO.#O.#.O.O#O...O.O..O..O#..#..#..O..........O.O#.....O...........O.###..#.#..O#.#.O...# +#..O...#.O..O.O......#O.O##...##...OOO....#.O.O#OO.##...OO.OOO..#.O..##.....O..O.O.#O.O..#.O#O...O.# +OO....#.#...O...O.#...##O..###O.......OO...#.#...O.#..#.O......O....#.O#..#O..O...OO...#..O#..O....O +O#..#O...##O.....#.O.#.O...##......#...#OO#...O.......#.#.OO#.#..#..O#OO...O.......O.#...#.##....O.. +#............O#....##.O.O..#O.#.OO.O...OOOO#.......O#O..O.......O#OO#...O.O....#.....#O.#.#..#.OO.O# +#O.O.....O....#O..OO.#O.#....#.##O.O...........O.##.#O##O...O#..O.O.O#......O...O.#....#OO#.#..O..## +.O..#O.O.#....O.........#.....OOO.......O.#O.....#OOOO#.O##O.#.O...O..#OO...O.....O..#.#......OO.O.# +O..O...O......O.O...#..#...#.OO.#.OO.O..O...#...#...O.###....#O#.O..O..#O..#.O.##.......O#..#O...... +#..O...#...#OOO.#.###.#....#..O.O.#.#......OO.#.#...#....#.OO.O..#.O...#.#.....O.#O.O.#O..O....O.O.. +OOO.#...##.OO.O....#.O.###.#.....O.OO#..#....OO...O#.#.O..#O.#..#.O..O....#O.OO#...O..#.....#O...O.O +.#.#...........#.............O.#..##.#O.#.O......#..O..OO.##O.O##.....#..O.O..O.OO..OO.#O.O.##O.O... +..O......O..##O.O...##......##OO..#O.#..#..OO...#...O.O..O..O.O.O##.#O.O#.#.O#....##.O.....O..#.O... +.#...#O.#.#....O..O..O#.O.....O..O.#.O....O.O...#.O#......O..O.O...#.#...O..##O...#.#...O.##..#..O#. +.O#..O.#....#.OO.#.....#O....O#O.#..#.O.....#......#O....O.........#.#O.OOOO#O.OOOO.#.....O.#.O..#OO +#..#.....O.....#.....##.O....##.O.O#OOO..O....O...#....O.O.....#.O#.O....O.O....#..O....O###.#..O#O. +...O...#..#O.O.O.......O.....O#O....#.#OO#......#..OO.....#.#...#...OO.O#O#O.#.#O....#..O....O...OO. +..#.##.#.#..............#O...#O#..##O.#.....O.#.#......O.....O#..O.O.O.#OOO####O.....O..##.O.OO.#..# +O...O#.O....#.O...........#......##.O.O#.....#.O..OO#...O#.##O..##.....#.O.O.....O#.#O.O..O...OO#... +OO.........##....##.O.O.OO.....O...........O.....O..#..#.OO........#O...OO.....#.O.........#........ +#..#.##O#.O#O..#..O...#.#.O.OO...##O..#..O.O........#.#O#..#..O..#.O.....O...O..O.O....#...O#....#.. +O.#.......O..O#O...OOOO#OO..O..#....#O..#...OO..#....O......#..#....O.O#.#....O.OO..O....O....OO..#. +O.OO..........#..O.#O#.#.#O...##..#..O##..##O#.OO......O..#.O.O.O.OO....#.....OOO#.O.#.O.#O##.#OO.#O +#..O....##...#.O.OO.O.O......#.OO...#......O........OO.#O..#.......OO..O..O...#.O......O.#O#O#...#OO +#...#..#OOOO#.#O#O.O#.O.#.###...O..#.....O..............O.....O.#.O....O.O....#...........O...O#.O.. +.#O.O.OOO.....O...O...#.........#..O..O.#..#.O#....O#O..OO.........OO#.........#..OO.O.......#...O.. +..#...O...#O...O..#.....O..O.#.......O...O.O.O.....O......O...#.....##.O.O#..O.#.O..#.O..O..OO...... +.O.O..O..#O..O#OO#OO.#....O...#.O#.O.#...###........O.....O..O.OOO.O...#....O.O....O..OO.###...O...O +.#.....O..OOOO..#...#.#.O......O..O..#.##.#...O#..O.#.#.O#.....##...##O.......##..O.O.O.......#..OO# +...O...O...O..O...#..O#....O....#......O..OO#...O...#.#O.##.#..O..#.##O..#.#...O.....#.#O.O..O.O##.. +.#OO#.....#O...O.#.OO......OO...O..O..O...#............#.OO##..OO..O.O......O..O...O...O...O...O.... +...O....O..#.O.O###..##.O..O.O.#...#.OO.O..O.O.O.O.#.O..#.O##.......O..#......O.O..O.OOO..##O....#.. +O...O.#..........O..OO.O#...#OO.OO..#O#.......O..#....O.......O.#OO.O.O.O.O##.OO..##...O#..OO#..#.#. +.O....#.#O............OOO.......#.O..#.#...#O......#....#.##..O.#.##OO..OO.#.#......O.O.....#.OO...O +..O...O#...O..O..#..#O..O#..O#..O.OO..O#.#...O####..O...O#..##......O#....O....O..O...O........O..O. +O.O.#..#.#..##..#.#....#..#..#.###.O#.O....OO...#....O#.....#.........#.###..#.#OO..#O...O...O.#.... +..OO.#.O.....O.O..#.......O...O..##.#.#O..#....#OO.O....O......#.OO#....O..#O.O...#.OO#O.#....O..O.# +#...O#.O...O..O..O.O#...O.O.......OO....OO..O#.O..............O..O#.#...O#....OO..OO..O....#.#O.O..# +O.O.##..O#...#O......O...O...OOO.....#....O#...O#.#.#........O..##..##.O..##O.O..O..#............O.# +.....#....O..O.O...####...#.O.#..#.#..#....#...#.OO.#..##...OOO.#..#......O.OOO.....#O#.......OO.... +...#.O#.O...#.OOO#.......OO.#..O..O##.#OO.O.#.O.O.O#.....#.O.........O...O....#.O#....#.#O..O..#..#. +...#..O......O..#.O...#.....#....O.....OOO..O..O##O#...O...O.#...O....#OOO##..........O....#O....... +...O.O.#.#...O.O#O#.#O#O....#....O..O....#.O.O#.....#....O..O..............O...##O.O....O..#....#..O +O.....O..#O....O..O##O..#..#.O.OO..#...##........#.#.#.O..###...#O.##..##..#O..O.OOO...O.O.....O.... +..##.......#...O.O.O#O.#...O..OO#OOO.#..O....#...O..#....#.....OO..OO.#....O.....#.##...O.#..O...#O# +O##....O.O..##OO.#.#.O#..##............OO.O.O.#.....#..OO...#...O..##O..........#.......O..OOO...O.# +#OO.......O.O..O...#...O#.#...O..O.....O..OO.O...#OO...O....O...O.O...O....O......#.#.O.OO.....#.... +...#..#OO..#..O.OO.#..#.....O..#O..#....#..#...O...O...OO..O#..O...O.........#...OO.O.#OO#.#.O..OO.# +..O#.O.O.#.#.....#...O..O#O..#..#..#.#...O..O.#.O.OO..OOO.#..OO.#.#.....OO...OO#O#.#..........O.##O. +...O#..O..O..O..#OO.###..O.........O#...OO.....O..O#....#O.O.O..O#.#...O#OO.O..#..O.O.O...O.OO.....O +.....O.#.O..O...##..#.O#O.#.......#O.OO#...O...##.OO#...OOO....#..#..#O...O.O#O.O..O.#OO...#..#.O#.O +....#...#O.O...##.#...#...##.O....#.#.O.O..##.O...#O...O#OO#..#.O.....#O#O.O.O#O...#.#.O.O..#...O..O +.O...O....O.....#.#O.#.##.##..O#..OO#O..#..O.#..O..O#....O#..#..OOOO.#.O..OO.O.##......#...#......#O +O....O.O...O#.OOO.#..O.......#..#....O#O........###..O..#.O.O.O.......#....O.O.O.##.O..#..O....O..#. +..O..OO...................OO...#........#.#...O..#.O.......#...O.......O..O#...O.#.O#....O#.O...#... +.O..#......O#O#..#......OOO........OOO........O#....O#.OO.#.......O#.OO.......##.....OO.O......O.O.. +.#O..#O#O#..###.............##....#..O...#.O#O..O###.O..##..#..#OOO#.#...O.#.O.....O.#...........#.. +.....O..O..OO.O.......OO.O.....#..##.##OOO#.#O..O.#....OO#OO...#...##...#.O...O....OO.O.##..O#..###. +OOO#.....#..#.O......O...O...#O..#....O.OO.#...O..........O.....O..O.....OO...#..O..O.#OO.O..OO.#... +O.OO.#...#.#...#...OOO.......O#....O....#....O.#...O.#.##.#OO.O..##......O.##OO#.......#.O...O.OOO.. +.....#.........#.............O##.##..O..OOOO....#....O..#..O..#...O...OO.#O....#O.....O#O#......#..# +.#.O#O#.O#OOO.......O.O......O.#.#....#O..O..#..#.......#O.O#.....###..O.#.O......#.#.O#......#O.... +..#O#.#.O.#O.OO.#O.O####.#..##.O.....#...#O#..#O#O#....O....OO#....O#.O...O.........#O##.O.O....#... +.OO..#O..O#.....OO....#O.O.....OO#...O.....OO.......#..O#...OO.#.O..O.O.#O.OO#.#O.....O...O..O.O.O.. +..##OOO.O.....##..O.#.#.##..#...##.O..O....OO...##O..#.OO....#.O#.......O..O..O.#.#.#....O.O.O#O..O. +O#.#..#.##.O..O.O.....OO#....OOO.O.O.OO.....O...###.......#O...#....#.OOO.#O..OO...O..#..O.O.O.....# +OO#.....OO.O.#OO...#O...O.....O..O.#....O............#O.O.O....#.......O.O..OOO...#...#...#......... +......#..O.#.....O....OO..##..##........O.#O..........#OOOO......O......O.O##..O#O#O.O..#.#O.....#.. +..O..OOO.........#.O..O..#..O..O###..O..##...O..#.O.O..#.............O.....##O.OO..#.#..O.##O.##O.O. +..#...#..O........O.O.#..##.O.#O......O.O.#OO..O..#..#O.O.....#.##..##..#......OO..#.O...#..#.O.O#.. +..#...#..O......#......#..O.##.#....OO..#...#.....O.O.O..#.##...##..OO......#.OO....O..O..O.O.#.O... +......O...#O......O.O..OO.O...#O..##..#...#..#....##........##O.O......O.O...#O....OO............... +.....O..#.##....OO.O...O..O..O.O...#....O.#.O....#.#..OO......OO#...#.###..#O...O....O..##O.#..OO.O. +...OO...#...##.##.#..#...#.O..#OOO.....#.#..O...O.##O.#.#..#O.#O.#......O#......OOO.O#.....#......O. +OOO.O.O...###...#...#.#...OOO.O...O..O...#....O.OO...O..##..O........#.O.#....#......##.#O..#.#O#O.. +....OO#.#.....O..O..#......OO.........O....O.....O..O#.#..##O.....#.#.#....#..O#..#OO.O...#.OO##O.OO +O.O..#..O.......O.O....O..OO.O...OO.O.......O###OOO##.O...O...#O#OO......O..O..O...#....##...O..O... +O#.O#.....O...O.O...#.##.#.......###....O.O.##......O....O..#O..#O#.O..##OO..O.###..O.OO#...#....##O +O..O..O............OO.....O.O..O...#............#O..O..O#...O..O.O##........#.#.....#....O#O.......# +............O....O#.OO...##..OO#O...#.....#OO..O#.......##O.O#...OO....#..O.....#..O...O.OO#O.O...O. +.#...#...OO...###.OO.OO....#..O...#...O.O...O....#........O.#..O#.OO..#....#O..O##.......O...#..##.. +#.O.O#.O..#....#...#O#...OO..#...O.O#.OO.##...............O.#......O.....#..O..#..O..#O..O..##.##.O. +O..##.....OO.O##.O..#.O........OOOO...#..##.........#.#..O.O.OO#..O##O#....O.O#.....O.....O#..#...## +O......#.O...#...O#.#...O#........O..#....#..#.O.......O.......#.....#..O......#..O#..O#...#.#O.O... +..........OO###.#.O.O..#...##..##.#.........O#O..O.#O.......O..O#...#..O.O..#.O....#..O..OO.O......O +.OOOO..O....O.....#.....#.#.O.#O.#.O....##...O.O#O.OO.....O.O#.#...#..#.#O.O.##...O...OO..O....OO#O. +O...###O...###O...#...#O...#....#..O#..#O#....O.##..#.....#.#OO#.O...O.##O#...O.....#.......#.O..... +O...#.OO.O##.O.....#.....O..O...#.O...O.#.....#.O....O.#...#OOOO..#.#O...O...##..##..........O....O# +..OOO..O..#...OO....##....O....O...O....#..O..##.O...O.O.....#.#.O.#.#..O#O.#.....#.O.#.#.....O.O#.. +#....O.OO##OO....#...#.....#....###.#..O..O.O...#.....#..O.........#O#...#............OO....#.OO..O. +.O.O#.#O#.O..O........#..O#...O.#..##O....O#O..O#O...#.O...#.....#.#......#......O...#...#..O..#.... +.#..O..O..#O..OO....OO#.#...O.....O....#....O..O#...OOOO#.#...#..##.O.....O.....#..O.O..#...OO#OO..# +....#O.##.O.....#..O..OOO.#.O..#.O.....#O.O.##..#OO.......O..##...O#.#.OO..O..#...#......#...O.O.... +#......#.#.....#O...O..#..#..###..O...##.OOO.O...#.O..#..##.O...#..O..O....O.......#OO.....#....OO.. diff --git a/src/day13pt1.rs b/src/day13pt1.rs new file mode 100644 index 0000000..bc71c44 --- /dev/null +++ b/src/day13pt1.rs @@ -0,0 +1,70 @@ +pub fn f(input: Vec<Vec<char>>) -> u64 { + for x in 1..input[0].len() { + let mut ind: bool = true; + + for i in 0..input.len() { + if !ind { + break; + } + + for j in 0..x { + if 2 * x - 1 - j >= input[0].len() { + continue; + } + if input[i][j] != input[i][2 * x - 1 - j] { + ind = false; + break; + } + } + } + + if ind { + return x as u64; + } + } + + for y in 1..input.len() { + let mut ind: bool = true; + + for i in 0..y { + if !ind { + break; + } + + for j in 0..input[i].len() { + if 2 * y - 1 - i >= input.len() { + continue; + } + if input[i][j] != input[2 * y - 1 - i][j] { + ind = false; + break; + } + } + } + + if ind { + return (y * 100) as u64; + } + } + + panic!(); +} + +pub fn main() { + let txt = std::fs::read_to_string("./input/day13.txt").unwrap(); + let input = txt + .split("\n\n") + .map(|s| { + s.lines() + .map(|s| s.chars().collect::<Vec<char>>()) + .collect::<Vec<_>>() + }) + .collect::<Vec<_>>(); + + let mut sum: u64 = 0; + for i in input { + sum += f(i); + } + + println!("{}", sum); +} diff --git a/src/day13pt2.rs b/src/day13pt2.rs new file mode 100644 index 0000000..5af732b --- /dev/null +++ b/src/day13pt2.rs @@ -0,0 +1,60 @@ +pub fn f(input: Vec<Vec<char>>) -> u64 { + for x in 1..input[0].len() { + let mut cnt: u32 = 0; + + for i in 0..input.len() { + for j in 0..x { + if 2 * x - 1 - j >= input[0].len() { + continue; + } + if input[i][j] != input[i][2 * x - 1 - j] { + cnt += 1; + } + } + } + + if cnt == 1 { + return x as u64; + } + } + + for y in 1..input.len() { + let mut cnt: u32 = 0; + + for i in 0..y { + for j in 0..input[i].len() { + if 2 * y - 1 - i >= input.len() { + continue; + } + if input[i][j] != input[2 * y - 1 - i][j] { + cnt += 1; + } + } + } + + if cnt == 1 { + return (y * 100) as u64; + } + } + + panic!(); +} + +pub fn main() { + let txt = std::fs::read_to_string("./input/day13.txt").unwrap(); + let input = txt + .split("\n\n") + .map(|s| { + s.lines() + .map(|s| s.chars().collect::<Vec<char>>()) + .collect::<Vec<_>>() + }) + .collect::<Vec<_>>(); + + let mut sum: u64 = 0; + for i in input { + sum += f(i); + } + + println!("{}", sum); +} diff --git a/src/day14pt1.rs b/src/day14pt1.rs new file mode 100644 index 0000000..9b68f62 --- /dev/null +++ b/src/day14pt1.rs @@ -0,0 +1,23 @@ +pub fn main() { + let txt = std::fs::read_to_string("./input/day14.txt").unwrap(); + let input = txt + .lines() + .map(|s| s.chars().collect::<Vec<char>>()) + .collect::<Vec<Vec<char>>>(); + + let mut sum: u64 = 0; + + for j in 0..input[0].len() { + let mut off: u64 = 0; + for i in 0..input.len() { + if input[i][j] == 'O' { + sum += input.len() as u64 - off; + off += 1; + } else if input[i][j] == '#' { + off = (i + 1) as u64; + } + } + } + + println!("{}", sum); +} diff --git a/src/day14pt2.rs b/src/day14pt2.rs new file mode 100644 index 0000000..9b68f62 --- /dev/null +++ b/src/day14pt2.rs @@ -0,0 +1,23 @@ +pub fn main() { + let txt = std::fs::read_to_string("./input/day14.txt").unwrap(); + let input = txt + .lines() + .map(|s| s.chars().collect::<Vec<char>>()) + .collect::<Vec<Vec<char>>>(); + + let mut sum: u64 = 0; + + for j in 0..input[0].len() { + let mut off: u64 = 0; + for i in 0..input.len() { + if input[i][j] == 'O' { + sum += input.len() as u64 - off; + off += 1; + } else if input[i][j] == '#' { + off = (i + 1) as u64; + } + } + } + + println!("{}", sum); +} diff --git a/src/main.rs b/src/main.rs index 11d3ec1..ed80bc3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ -mod day11pt1; -mod day11pt2; +mod day14pt1; +mod day14pt2; fn main() { - day11pt1::main(); - day11pt2::main(); + day14pt1::main(); + day14pt2::main(); } |
