From 38d0711baed657a514a55ebf6763d61b766e6759 Mon Sep 17 00:00:00 2001 From: Chris Lewis Date: Wed, 25 Dec 2024 16:30:27 +1100 Subject: [PATCH] day 25 --- 25/input_25 | 3999 ++++++++++++++++++++++++++++++++++++++++++++++ 25/twentyfive.go | 63 + 2 files changed, 4062 insertions(+) create mode 100644 25/input_25 create mode 100644 25/twentyfive.go diff --git a/25/input_25 b/25/input_25 new file mode 100644 index 0000000..419320c --- /dev/null +++ b/25/input_25 @@ -0,0 +1,3999 @@ +##### +.#### +..##. +..#.. +..#.. +..#.. +..... + +..... +..... +..#.# +..#.# +..### +.#### +##### + +..... +..... +.#... +.#..# +.#.## +##.## +##### + +##### +##### +###.# +.##.# +.##.# +.#... +..... + +##### +##.#. +##... +##... +##... +#.... +..... + +##### +##### +#.#.# +..#.# +..#.# +..#.. +..... + +..... +....# +.#..# +.##.# +###.# +###.# +##### + +##### +#.##. +#.#.. +..#.. +..#.. +..... +..... + +..... +#.... +#..#. +#.##. +#.### +##### +##### + +..... +....# +.#..# +.##.# +.##.# +.#### +##### + +##### +##.## +##.## +.#.## +.#.## +.#.#. +..... + +..... +..... +..... +.#... +.#..# +##.## +##### + +..... +..#.. +..#.. +.##.. +.##.# +##### +##### + +..... +..#.# +#.#.# +#.#.# +#.#.# +#.#.# +##### + +..... +.#... +.#... +##.#. +##### +##### +##### + +..... +...#. +#..#. +#..#. +#..#. +##.## +##### + +..... +.#... +.##.. +.##.. +.##.# +##### +##### + +..... +..... +..#.. +#.##. +####. +####. +##### + +##### +.#### +.#.## +.#..# +.#..# +....# +..... + +..... +..#.# +..#.# +#.#.# +#.### +##### +##### + +..... +.#..# +.#..# +##..# +##..# +###.# +##### + +##### +##.## +##.## +##.## +#..#. +#..#. +..... + +##### +#.### +#.### +..### +...## +....# +..... + +..... +..... +...#. +..##. +.#### +##### +##### + +##### +.#### +..### +..### +..### +..#.# +..... + +..... +..#.# +..#.# +.#### +.#### +.#### +##### + +##### +.#### +.##.# +.##.# +.#... +..... +..... + +..... +..... +...#. +#..#. +#..#. +#.##. +##### + +..... +....# +#...# +##..# +##..# +###.# +##### + +..... +...#. +...#. +...## +...## +.#.## +##### + +..... +#.#.. +###.# +###.# +##### +##### +##### + +..... +.#... +###.# +##### +##### +##### +##### + +..... +..... +..#.. +.###. +.#### +##### +##### + +..... +#..#. +#..#. +#.##. +#.### +##### +##### + +..... +.#... +.#.#. +.#.## +##.## +##.## +##### + +..... +..#.# +..#.# +..### +..### +.#### +##### + +##### +##### +#.### +#.### +..### +...#. +..... + +##### +##### +###.# +.##.# +.#... +..... +..... + +##### +##### +#.### +#.### +..#.# +....# +..... + +##### +#.### +#.### +#.### +...## +...#. +..... + +..... +#.... +#.#.. +#.##. +#.##. +##### +##### + +##### +#.### +#.##. +#.#.. +#.#.. +#.#.. +..... + +##### +#.#.# +#.#.# +#.#.. +..#.. +..#.. +..... + +##### +##### +##### +##.#. +#..#. +#..#. +..... + +##### +##.## +#..## +#..#. +#..#. +#.... +..... + +..... +...#. +#.##. +#.##. +#.##. +#.##. +##### + +..... +...#. +...#. +.#.#. +.#.#. +.###. +##### + +##### +.##.# +.#... +.#... +.#... +..... +..... + +##### +#.### +#..#. +..... +..... +..... +..... + +##### +#.#.# +#.... +..... +..... +..... +..... + +##### +.#### +.##.# +..#.# +..#.# +..... +..... + +..... +#...# +##..# +##.## +##.## +##### +##### + +##### +####. +#.##. +#..#. +#..#. +...#. +..... + +..... +..#.# +#.#.# +#.### +#.### +#.### +##### + +##### +#.### +..### +..### +...#. +..... +..... + +##### +##### +###.# +##..# +##..# +.#..# +..... + +##### +.#### +.#### +.#.#. +.#.#. +..... +..... + +..... +#.... +#.... +#..#. +#..## +#.### +##### + +..... +#..#. +#..#. +#..#. +##.## +##.## +##### + +..... +.#... +##... +##... +##..# +##.## +##### + +..... +.#..# +##..# +##..# +##..# +###.# +##### + +##### +.#### +..### +...## +...## +...#. +..... + +##### +##### +###.# +###.# +###.# +#.#.. +..... + +##### +.#### +.##.# +.##.# +.##.. +.#... +..... + +##### +##### +##### +.#.## +.#..# +....# +..... + +..... +..... +.#..# +.#..# +##..# +###.# +##### + +##### +##### +##### +##.#. +##.#. +.#... +..... + +..... +..#.. +.##.. +###.. +###.. +####. +##### + +..... +..#.. +.##.# +###.# +###.# +##### +##### + +..... +..... +..#.. +..#.. +.###. +.###. +##### + +..... +..#.. +.###. +.###. +##### +##### +##### + +..... +..... +..... +..#.# +.##.# +###.# +##### + +..... +#.... +#..#. +##.#. +##.## +##.## +##### + +##### +.##.# +.##.. +.##.. +.#... +..... +..... + +##### +#.##. +#.##. +#.##. +#.##. +#.#.. +..... + +##### +##.## +##.#. +##.#. +##... +#.... +..... + +..... +#.... +#...# +##.## +##.## +##.## +##### + +##### +.##.# +.##.# +.##.. +..#.. +..#.. +..... + +##### +##### +##### +#.### +#.##. +#.#.. +..... + +##### +#.### +#.### +#.##. +..#.. +..... +..... + +##### +##### +.###. +.###. +.###. +..#.. +..... + +..... +#.... +#.#.# +#.### +#.### +#.### +##### + +##### +##### +##### +#.#.# +..... +..... +..... + +..... +#.... +##... +###.. +###.# +###.# +##### + +..... +#..#. +#..#. +#..#. +##.#. +##.#. +##### + +..... +.#... +.#..# +.#.## +##.## +##### +##### + +##### +#.#.# +#.#.# +#.#.. +#.#.. +..#.. +..... + +##### +#.### +#.### +#..#. +#..#. +#.... +..... + +##### +#.### +#.##. +..#.. +..#.. +..... +..... + +##### +#.### +#.### +#.##. +..##. +..#.. +..... + +..... +...#. +..##. +.###. +##### +##### +##### + +..... +..... +...#. +...#. +#.### +#.### +##### + +..... +..#.# +..#.# +#.### +#.### +#.### +##### + +..... +....# +..#.# +#.#.# +#.### +#.### +##### + +##### +##### +##### +####. +.##.. +.#... +..... + +..... +..... +...#. +...#. +..##. +#.### +##### + +..... +..... +..... +.#.#. +.#.#. +##### +##### + +##### +##.## +##..# +##..# +#...# +#...# +..... + +##### +##.## +#..#. +#..#. +#..#. +...#. +..... + +..... +.#... +.#... +.#.#. +##.#. +####. +##### + +..... +..#.. +..#.# +.#### +.#### +.#### +##### + +..... +..... +#.... +#.... +##.#. +##.## +##### + +##### +##### +####. +#.##. +...#. +..... +..... + +##### +##.## +##.## +##.## +#..#. +..... +..... + +..... +.#... +.#.#. +.#### +.#### +##### +##### + +##### +####. +##.#. +.#.#. +.#.#. +.#.#. +..... + +..... +..#.. +..#.. +.##.. +.##.# +.##.# +##### + +##### +##### +###.# +##..# +##..# +.#... +..... + +..... +.#..# +.#..# +##.## +##.## +##### +##### + +##### +#.##. +#.#.. +#.... +..... +..... +..... + +..... +.#... +.#... +.#... +###.# +##### +##### + +##### +##.## +##..# +##... +.#... +.#... +..... + +##### +####. +#.##. +#..#. +#.... +#.... +..... + +##### +###.# +.##.# +.##.. +..#.. +..#.. +..... + +..... +..... +.#.#. +.#.#. +##.#. +##.#. +##### + +##### +#.### +#..## +...#. +...#. +...#. +..... + +..... +..... +...#. +...#. +...#. +.#.#. +##### + +..... +.#... +.#.#. +.###. +.###. +##### +##### + +..... +..... +.#... +.#... +.#... +.#.#. +##### + +..... +.#... +.#... +.#.#. +.#.#. +.#.#. +##### + +..... +...#. +...#. +...#. +...#. +.#.## +##### + +##### +##### +####. +.#.#. +.#.#. +..... +..... + +##### +#.### +#..#. +#.... +#.... +#.... +..... + +..... +..... +.#..# +.#.## +.#### +##### +##### + +##### +##.## +#..## +#...# +#...# +#...# +..... + +..... +..... +..... +..#.. +#.##. +##### +##### + +..... +#..#. +#.### +##### +##### +##### +##### + +..... +....# +....# +..#.# +.##.# +###.# +##### + +##### +##### +##.## +#..## +....# +..... +..... + +##### +##.## +.#.#. +.#.#. +.#.#. +.#.#. +..... + +##### +####. +.###. +.###. +..##. +...#. +..... + +##### +.#### +.#### +.#.## +....# +....# +..... + +##### +####. +###.. +###.. +#.#.. +..#.. +..... + +..... +.#... +###.. +###.. +####. +####. +##### + +##### +####. +####. +#.#.. +..#.. +..... +..... + +##### +.#### +.##.# +.##.# +..#.. +..#.. +..... + +##### +.##.# +.#..# +....# +....# +..... +..... + +##### +####. +##.#. +##... +.#... +..... +..... + +..... +...#. +.#.#. +.#.## +.#.## +.#### +##### + +##### +##### +####. +.###. +.#.#. +...#. +..... + +##### +.#.## +.#.#. +.#.#. +.#.#. +.#.#. +..... + +..... +....# +....# +...## +...## +.#.## +##### + +##### +.###. +.#.#. +.#... +.#... +.#... +..... + +..... +..... +.#.#. +.#.## +.#### +.#### +##### + +##### +##### +#.#.# +#.#.# +#.#.. +..... +..... + +##### +.#### +.#### +.#.#. +...#. +..... +..... + +..... +.#..# +.#.## +.#### +##### +##### +##### + +##### +####. +###.. +.#... +..... +..... +..... + +..... +..... +#.... +#..#. +#.### +##### +##### + +..... +..... +.#... +.#..# +##.## +##### +##### + +..... +..... +.#... +##... +##... +###.# +##### + +..... +..... +.#.#. +.#.#. +##.## +##### +##### + +##### +#.#.# +#.#.# +#.#.. +#.... +#.... +..... + +##### +##### +#.##. +#.##. +#..#. +...#. +..... + +..... +#.... +##... +##.#. +##.## +##### +##### + +..... +..... +.#... +.#.#. +##.#. +##.## +##### + +..... +..... +.#... +.#..# +.#.## +.#.## +##### + +..... +..#.# +..#.# +..### +..### +#.### +##### + +..... +....# +..#.# +..#.# +#.#.# +#.### +##### + +..... +...#. +...#. +...#. +.#.#. +.#.#. +##### + +##### +##### +##### +#.##. +#.#.. +#.#.. +..... + +##### +##### +####. +##.#. +#.... +#.... +..... + +##### +##.## +##.#. +##... +.#... +..... +..... + +##### +##.## +#..## +...#. +...#. +..... +..... + +##### +#.##. +#.##. +#.#.. +#.#.. +..#.. +..... + +..... +#.... +#.#.# +#.#.# +#.### +#.### +##### + +##### +.#### +..### +..##. +..#.. +..... +..... + +..... +....# +#..## +#..## +#.### +##### +##### + +..... +..... +...#. +..##. +..##. +#.### +##### + +##### +##### +##.#. +##... +#.... +#.... +..... + +..... +..#.. +..#.. +..#.# +.#### +##### +##### + +##### +##.## +##.#. +#..#. +...#. +...#. +..... + +..... +..#.. +..#.. +#.#.. +#.#.# +#.#.# +##### + +..... +..... +..... +....# +#.#.# +##### +##### + +##### +#.#.# +#.#.. +..#.. +..... +..... +..... + +##### +###.# +##..# +#...# +#.... +..... +..... + +##### +.#### +.#.#. +.#.#. +.#... +..... +..... + +..... +..... +....# +....# +#.#.# +###.# +##### + +..... +.#..# +.#..# +.#..# +.#..# +##.## +##### + +##### +.###. +..#.. +..... +..... +..... +..... + +##### +.###. +..##. +..#.. +..... +..... +..... + +..... +....# +.#..# +.#.## +.#### +.#### +##### + +##### +##### +##### +##### +.##.# +..#.. +..... + +..... +.#... +.#... +##... +###.# +##### +##### + +..... +...#. +.#.## +.#.## +.#### +##### +##### + +##### +.###. +..##. +..#.. +..#.. +..... +..... + +##### +##### +#.#.# +#.... +#.... +..... +..... + +..... +..... +..... +..... +#.#.. +####. +##### + +##### +##### +##.## +##.## +##..# +#...# +..... + +##### +###.# +###.# +.#..# +.#..# +....# +..... + +##### +.#### +..##. +...#. +..... +..... +..... + +##### +#.### +#.#.# +#.#.# +#.... +..... +..... + +..... +.#.#. +.#.#. +##.#. +##### +##### +##### + +..... +.#... +.#..# +##..# +##..# +##.## +##### + +##### +###.# +.#..# +....# +....# +..... +..... + +##### +###.# +.#... +..... +..... +..... +..... + +##### +##### +.##.# +.#..# +....# +..... +..... + +##### +#.##. +#.##. +#.#.. +#.... +#.... +..... + +..... +#.... +#.... +#.#.# +#.#.# +#.### +##### + +..... +.#... +.#.#. +.#.#. +.#.## +.#.## +##### + +##### +##### +###.# +##... +#.... +..... +..... + +##### +##### +##### +##### +##### +.#.#. +..... + +..... +..... +...#. +#..#. +#..#. +##.## +##### + +..... +.#... +.##.. +###.# +###.# +###.# +##### + +##### +####. +#.##. +#.##. +#.##. +...#. +..... + +##### +.#### +.#.## +.#.## +.#.## +....# +..... + +..... +..... +.#.#. +.#.## +.#### +##### +##### + +..... +....# +..#.# +..#.# +#.### +##### +##### + +##### +##.## +.#.## +.#.#. +.#... +.#... +..... + +..... +..#.. +..#.. +..#.# +.##.# +##### +##### + +..... +.#..# +.#..# +.#.## +##.## +##.## +##### + +##### +##### +##### +.#### +..#.# +..#.. +..... + +..... +..#.. +.##.. +###.# +###.# +###.# +##### + +..... +...#. +.#.#. +.#### +.#### +.#### +##### + +..... +..#.# +..#.# +.#### +.#### +##### +##### + +..... +...#. +...## +..### +#.### +#.### +##### + +..... +...#. +#.##. +####. +####. +####. +##### + +..... +..#.. +.##.. +.##.. +.###. +.###. +##### + +..... +..... +..#.. +..#.. +#.#.# +##### +##### + +##### +##### +##### +#.##. +#.#.. +..#.. +..... + +##### +##### +##.## +##.## +.#.#. +...#. +..... + +##### +####. +.###. +.###. +.#.#. +.#... +..... + +##### +##.## +##..# +#.... +#.... +..... +..... + +##### +##### +####. +###.. +###.. +#.#.. +..... + +..... +#.... +#.... +#.#.. +#.#.# +#.#.# +##### + +..... +.#.#. +.#.#. +.#.## +.#### +##### +##### + +##### +##### +#.#.# +#.#.# +..#.# +..#.. +..... + +##### +##.#. +##... +#.... +#.... +#.... +..... + +##### +###.# +#.#.# +#.#.# +..#.# +..#.# +..... + +..... +.#... +.#.#. +.#.## +.#.## +##.## +##### + +..... +..#.. +#.#.. +#.#.# +#.#.# +##### +##### + +..... +..... +....# +..#.# +..#.# +#.#.# +##### + +..... +#.... +##... +##... +##.#. +##.#. +##### + +##### +###.# +##... +##... +.#... +.#... +..... + +..... +....# +#..## +#.### +##### +##### +##### + +..... +..... +.#... +.##.# +.#### +.#### +##### + +##### +##.## +##.## +##.#. +#..#. +...#. +..... + +##### +#.### +..##. +..##. +..##. +...#. +..... + +..... +...#. +...#. +#.##. +#.##. +#.##. +##### + +..... +..... +..... +..... +#.... +#.#.# +##### + +..... +..... +..#.. +..#.. +.###. +####. +##### + +..... +..#.. +..#.# +.##.# +.##.# +###.# +##### + +##### +##### +#.### +#..#. +#.... +..... +..... + +..... +#..#. +#..## +#..## +#.### +#.### +##### + +..... +.#..# +##..# +##..# +##.## +##### +##### + +##### +###.# +##... +.#... +.#... +..... +..... + +##### +##### +##### +##.## +##.## +.#.#. +..... + +##### +##.## +##.#. +#..#. +#..#. +#..#. +..... + +..... +..... +...#. +...#. +...## +.#.## +##### + +##### +##### +##.## +.#.## +.#..# +.#..# +..... + +##### +##### +##.#. +##.#. +##.#. +.#.#. +..... + +..... +...#. +.#.#. +##.#. +##.#. +####. +##### + +##### +##### +##### +##### +###.# +.#... +..... + +..... +....# +.#.## +.#### +##### +##### +##### + +..... +.#.#. +.#.#. +####. +####. +##### +##### + +..... +....# +....# +.#.## +.#### +.#### +##### + +..... +..... +..... +..... +.#... +.#.#. +##### + +..... +..... +.#.#. +.#.#. +.#### +##### +##### + +..... +#.#.. +#.#.. +#.##. +#.##. +#.### +##### + +..... +..... +..... +....# +#..## +##.## +##### + +##### +##### +##### +###.# +###.# +#.#.# +..... + +##### +.#### +.#### +.#### +.###. +.#.#. +..... + +##### +.##.# +.##.# +.##.# +..#.# +....# +..... + +..... +..#.. +..#.# +..#.# +.##.# +###.# +##### + +##### +##### +#.### +#.#.# +#.#.# +#.... +..... + +##### +#.### +#.### +..##. +..##. +..#.. +..... + +..... +#..#. +#.##. +####. +####. +####. +##### + +##### +##### +##### +.##.# +.##.# +..#.. +..... + +##### +#.### +#.#.# +....# +....# +..... +..... + +..... +..... +..... +....# +..#.# +#.### +##### + +##### +##.## +.#..# +.#..# +.#..# +.#... +..... + +..... +..... +.#.#. +##.#. +##.#. +##### +##### + +..... +..... +..#.. +..#.. +.###. +##### +##### + +##### +##### +##### +##.## +.#.#. +.#.#. +..... + +##### +###.# +###.. +#.#.. +#.... +..... +..... + +##### +##### +####. +####. +.##.. +..#.. +..... + +..... +..... +.#..# +##.## +##.## +##.## +##### + +..... +....# +...## +.#.## +##.## +##### +##### + +..... +..... +..... +..#.. +#.##. +####. +##### + +..... +....# +..#.# +..### +#.### +#.### +##### + +..... +.#..# +.#..# +.#..# +.#..# +###.# +##### + +##### +#.### +...## +...## +...## +....# +..... + +##### +#.### +#.### +#.### +..#.# +....# +..... + +..... +..#.. +..##. +..### +#.### +##### +##### + +..... +.#.#. +.###. +##### +##### +##### +##### + +..... +...#. +#..#. +#.##. +####. +##### +##### + +..... +..... +..... +#.#.# +#.#.# +###.# +##### + +##### +##### +.#### +.###. +.#.#. +..... +..... + +##### +##### +####. +####. +#.##. +#.#.. +..... + +##### +####. +####. +##.#. +#..#. +..... +..... + +..... +....# +....# +...## +.#.## +##.## +##### + +##### +#.### +#.### +#.#.# +#.#.# +#...# +..... + +##### +##### +#.#.# +#.#.. +#.#.. +#.... +..... + +##### +##### +##### +##### +#.##. +..#.. +..... + +##### +##.#. +##.#. +##.#. +.#... +..... +..... + +##### +.##.# +.##.# +.#..# +..... +..... +..... + +##### +####. +.#.#. +.#.#. +.#.#. +.#... +..... + +##### +##.## +#..#. +...#. +..... +..... +..... + +##### +####. +##.#. +##.#. +##.#. +.#... +..... + +##### +.#### +.#.## +.#.## +.#.#. +.#.#. +..... + +##### +##### +#.#.# +#.#.# +..#.. +..#.. +..... + +##### +##### +##### +#.##. +..#.. +..... +..... + +##### +.#.## +.#..# +.#..# +....# +..... +..... + +..... +..... +#.... +#.#.# +#.### +##### +##### + +..... +..... +..... +..... +#..#. +#.### +##### + +##### +##### +##### +##### +##### +#.#.# +..... + +##### +##### +#.### +..### +..#.# +....# +..... + +##### +##.#. +.#.#. +.#... +.#... +..... +..... + +##### +##.## +##.## +.#..# +.#..# +..... +..... + +##### +#.### +#.### +..### +..##. +..#.. +..... + +##### +##.## +##.## +#..## +...#. +..... +..... + +..... +...#. +#.### +#.### +#.### +##### +##### + +..... +..#.# +.##.# +.##.# +.#### +##### +##### + +..... +#.... +#.... +#...# +##.## +##### +##### + +..... +..... +.#... +.#... +##.#. +####. +##### + +##### +##### +.#### +.#.#. +..... +..... +..... + +##### +##### +#.### +..#.# +..... +..... +..... + +..... +.#... +.#.#. +.#.#. +####. +####. +##### + +##### +.#### +.#### +.##.# +.#..# +....# +..... + +..... +.#... +.#... +##..# +##.## +##### +##### + +##### +##.#. +#..#. +#..#. +#.... +#.... +..... + +##### +##### +.#### +.#.## +....# +....# +..... + +##### +###.# +.##.# +.##.# +.##.. +..#.. +..... + +..... +..... +#.... +##.#. +####. +####. +##### + +##### +###.# +###.# +###.# +#.#.# +..#.# +..... + +..... +#...# +#...# +#...# +#.#.# +#.### +##### + +..... +..... +..#.. +.###. +####. +##### +##### + +..... +.#... +##.#. +##.#. +##.## +##.## +##### + +..... +..... +....# +....# +#..## +#.### +##### + +##### +.#### +.#### +.#.#. +...#. +...#. +..... + +##### +#.### +#.### +#..## +#...# +..... +..... + +..... +..... +#.... +#.#.# +#.#.# +##### +##### + +##### +.#### +.#### +..##. +...#. +...#. +..... + +..... +..#.. +..##. +.###. +.#### +##### +##### + +##### +##.## +##.#. +#.... +#.... +..... +..... + +..... +.#.#. +##.## +##### +##### +##### +##### + +##### +##### +.#### +..#.# +..#.# +....# +..... + +##### +###.# +#.#.# +#.... +#.... +..... +..... + +##### +##### +##### +.#.## +.#.#. +...#. +..... + +##### +.#.## +.#.## +...## +...## +...#. +..... + +..... +..#.. +..#.. +.##.# +.##.# +.#### +##### + +..... +.#... +.##.. +.###. +.###. +####. +##### + +##### +###.# +#.#.# +..#.# +..#.# +..#.# +..... + +..... +....# +#.#.# +#.#.# +#.#.# +#.#.# +##### + +..... +..... +..... +.#.#. +.###. +##### +##### + +..... +..... +..#.. +.###. +.###. +##### +##### + +##### +.#.## +.#.## +.#..# +.#..# +.#..# +..... + +##### +##### +#.##. +#.#.. +..... +..... +..... + +##### +##### +##### +.###. +.#.#. +..... +..... + +##### +.#### +.#### +..##. +..#.. +..... +..... + +##### +#.### +#..## +#...# +#...# +#...# +..... + +..... +#...# +##.## +##.## +##### +##### +##### + +##### +###.# +##..# +.#... +.#... +..... +..... + +##### +##### +.#### +..### +..#.# +..#.. +..... + +##### +##### +##.## +#...# +..... +..... +..... + +##### +##.## +##.#. +##... +#.... +#.... +..... + +##### +#.### +..##. +..#.. +..... +..... +..... + +##### +####. +##.#. +.#.#. +...#. +...#. +..... + +..... +..... +..... +..#.. +..#.# +#.#.# +##### + +##### +#.### +#.### +...#. +...#. +...#. +..... + +##### +##### +##### +#.#.# +#.... +..... +..... + +..... +#.... +#.... +##..# +###.# +##### +##### + +..... +..... +..... +...#. +#..#. +##.## +##### + +##### +.#### +.#### +..#.# +..#.. +..... +..... + +..... +.#.#. +##.#. +##.#. +##.#. +####. +##### + +##### +##### +##.## +#..## +#...# +..... +..... + +..... +..... +...#. +...#. +#..#. +##.## +##### + +..... +....# +.#..# +##..# +###.# +###.# +##### + +..... +#.#.. +#.#.. +#.#.. +#.#.. +####. +##### + +..... +..... +..... +#.... +##.#. +##.#. +##### + +..... +...#. +..### +..### +#.### +##### +##### + +##### +#.#.# +..#.# +..#.# +....# +....# +..... + +##### +##### +##### +##.## +.#..# +.#... +..... + +##### +##### +##### +.#.#. +.#.#. +..... +..... + +##### +#.#.# +..#.# +..#.# +..#.# +..#.. +..... + +..... +#.#.. +#.##. +#.##. +####. +####. +##### + +..... +..... +....# +#...# +#.#.# +##### +##### + +..... +..#.. +..##. +.###. +.###. +.###. +##### + +##### +.#.#. +...#. +...#. +..... +..... +..... + +..... +..... +.#... +.#.#. +##.#. +####. +##### + +##### +####. +##.#. +##.#. +.#... +.#... +..... + +..... +..... +#.... +#.#.. +####. +##### +##### + +..... +..... +.#... +.#..# +##..# +##.## +##### + +##### +#.#.# +..#.# +..#.# +..#.# +..#.# +..... + +##### +##### +###.# +###.. +###.. +#.#.. +..... + +..... +#.#.. +###.. +###.. +###.. +###.# +##### + +##### +#.### +#.#.# +#.#.# +#.#.# +#.#.. +..... + +##### +##.## +.#.## +.#.#. +...#. +..... +..... + +..... +#.... +#...# +#...# +#...# +##.## +##### + +..... +..... +#.... +#...# +#.#.# +#.### +##### + +##### +##### +#.##. +#.#.. +..#.. +..#.. +..... + +##### +####. +#.##. +#..#. +...#. +..... +..... + +##### +##### +#.### +#..## +#...# +..... +..... + +##### +##.## +##.## +##.## +#...# +..... +..... + +..... +..... +..#.. +#.#.. +#.#.. +#.#.# +##### + +##### +###.# +###.# +##..# +#.... +..... +..... + +..... +..... +.#..# +.##.# +###.# +##### +##### + +..... +..#.. +..#.. +#.#.# +##### +##### +##### + +..... +..... +..... +.#.#. +.#.#. +####. +##### + +..... +#...# +##..# +###.# +##### +##### +##### + +..... +..... +.#... +.#... +.#..# +.#.## +##### + +##### +###.# +###.# +.#... +..... +..... +..... + +##### +##.## +.#.## +.#.#. +..... +..... +..... + +##### +##### +#.### +#.##. +..##. +...#. +..... + +##### +####. +##.#. +##... +##... +.#... +..... + +..... +..#.. +#.#.# +#.#.# +#.#.# +#.#.# +##### + +..... +..#.# +..### +.#### +##### +##### +##### + +..... +..... +.#.#. +.#.#. +##.## +##.## +##### + +..... +#.... +#...# +#.#.# +###.# +###.# +##### + +..... +..... +....# +.#..# +.#..# +.#.## +##### + +..... +.#... +.#... +###.. +###.. +####. +##### + +##### +#.### +#..## +#..#. +#.... +..... +..... + +..... +....# +....# +..#.# +.#### +.#### +##### + +##### +###.# +###.# +.##.# +..#.. +..#.. +..... + +##### +##### +##### +##### +.#.## +.#..# +..... + +##### +##### +###.# +#.#.. +#.... +#.... +..... + +..... +...#. +...#. +#.### +#.### +##### +##### + +..... +.#... +.#..# +.#.## +.#.## +.#### +##### + +..... +..... +#.#.. +#.#.# +#.### +#.### +##### + +##### +####. +#.##. +..##. +..##. +...#. +..... + +##### +##### +##### +.#.## +.#.## +.#.#. +..... + +..... +#.... +#.... +#.#.. +#.##. +####. +##### + +..... +..... +.#.#. +.#.## +##.## +##.## +##### + +..... +..... +..... +.#.#. +####. +##### +##### + +##### +.#### +.#### +.###. +.###. +..#.. +..... + +##### +####. +#.##. +#.##. +..##. +...#. +..... + +##### +##### +##### +#.#.# +#.#.# +..#.# +..... + +..... +#.... +#.... +#.... +#...# +##.## +##### + +##### +##### +##.## +.#..# +.#..# +....# +..... + +##### +#.#.# +..#.# +..... +..... +..... +..... + +..... +.#... +.##.# +.##.# +.#### +##### +##### + +..... +#.... +##... +##..# +##.## +##.## +##### + +##### +#.##. +#.##. +..##. +..#.. +..... +..... + +..... +..... +...#. +#.##. +#.##. +##### +##### + +##### +##### +##### +###.# +.#... +.#... +..... + +##### +#.#.# +#.#.. +#.#.. +#.#.. +..... +..... + +..... +...#. +..##. +#.### +#.### +#.### +##### + +..... +.#... +.#... +.##.. +.###. +##### +##### + +..... +....# +....# +.#..# +###.# +##### +##### + +##### +####. +##.#. +.#... +.#... +.#... +..... + +##### +##### +###.# +.#..# +.#..# +....# +..... + +..... +.#... +.#... +.##.. +.##.# +.#### +##### + +..... +..#.. +..#.# +..### +#.### +#.### +##### + +##### +###.# +###.# +#.#.# +#.#.# +#.#.# +..... + +##### +##.#. +##... +#.... +#.... +..... +..... + +##### +###.# +.#..# +.#..# +.#..# +....# +..... + +##### +#.##. +#.#.. +#.#.. +..... +..... +..... + +..... +...#. +...#. +#..## +##.## +##.## +##### + +..... +..... +..#.# +.#### +.#### +.#### +##### + +..... +...#. +..##. +..##. +.#### +##### +##### + +##### +##### +##### +.##.# +.#... +..... +..... + +..... +.#... +.#..# +.#..# +.##.# +###.# +##### + +..... +.#... +.#... +.##.. +###.. +###.# +##### + +##### +#.### +#.#.# +#...# +#...# +#.... +..... + +##### +##### +##### +.###. +.#.#. +.#... +..... + +##### +#.### +#..## +#..## +#..#. +#.... +..... + +..... +#...# +##..# +##.## +##.## +##.## +##### + +##### +##### +#.### +#.#.# +..#.# +..#.# +..... + +##### +##### +###.# +#.#.. +#.... +..... +..... + +..... +..... +#.... +#..#. +#.##. +####. +##### + +..... +..... +#..#. +##.#. +##.#. +##### +##### + +##### +####. +##.#. +.#.#. +.#.#. +.#... +..... + +##### +##### +#.### +#.### +#.### +..#.# +..... + +##### +####. +.###. +.##.. +.#... +..... +..... + +##### +#.### +..### +..#.# +..#.. +..#.. +..... + +..... +#.... +#.... +#...# +#...# +#.#.# +##### + +..... +.#... +.##.. +###.# +###.# +##### +##### + +##### +#.#.# +#.#.# +#.#.# +....# +....# +..... + +..... +..#.. +#.##. +#.##. +#.##. +#.##. +##### + +##### +#.##. +..##. +..##. +..##. +...#. +..... + +##### +##### +##### +###.# +#.#.# +..... +..... + +..... +.#..# +##..# +##.## +##### +##### +##### + +##### +##.## +#..## +#..## +...## +....# +..... + +..... +.#... +.##.# +.#### +.#### +##### +##### + +..... +.#.#. +.#.## +.#.## +##.## +##### +##### + +..... +..... +...#. +#..## +#.### +##### +##### + +##### +##.## +##.## +##.#. +#.... +#.... +..... + +..... +.#.#. +.#.## +##### +##### +##### +##### + +..... +..... +#..#. +#..## +##.## +##.## +##### + +##### +##### +##.## +##.## +#...# +..... +..... + +..... +.#.#. +##.#. +##.#. +##.#. +##.## +##### + +..... +.#... +.#... +.##.. +.###. +####. +##### + +..... +..... +..... +..... +..#.. +#.#.# +##### + +..... +#.... +#.#.. +#.#.# +###.# +##### +##### + +##### +##### +####. +#.#.. +#.... +#.... +..... + +..... +..#.. +..#.. +.##.# +###.# +###.# +##### + +..... +.#.#. +##.#. +##.#. +##.## +##.## +##### + +##### +##### +###.# +###.# +.##.. +..#.. +..... + +..... +..#.. +..#.. +..##. +#.##. +##### +##### + +##### +#.### +#.### +#.### +...#. +...#. +..... + +##### +###.# +###.# +###.# +###.. +#.#.. +..... + +..... +....# +.#..# +##..# +##..# +###.# +##### + +..... +....# +#.#.# +#.#.# +#.### +#.### +##### + +..... +..#.# +..#.# +#.#.# +###.# +###.# +##### + +..... +..... +#.#.. +#.#.. +#.##. +#.##. +##### + +..... +..#.# +.##.# +.##.# +.##.# +###.# +##### + +..... +..... +.#... +.#.#. +.###. +.#### +##### + +##### +#.### +#.#.# +..#.# +..... +..... +..... + +..... +..... +..... +#...# +#.#.# +##### +##### + +##### +##.## +#...# +#...# +....# +..... +..... \ No newline at end of file diff --git a/25/twentyfive.go b/25/twentyfive.go new file mode 100644 index 0000000..e9ca7d0 --- /dev/null +++ b/25/twentyfive.go @@ -0,0 +1,63 @@ +package main + +import ( + "fmt" + "strings" + + "github.com/cdlewis/advent-of-code/util/aoc" + "github.com/cdlewis/advent-of-code/util/grid" +) + +func main() { + rawPlans := strings.Split(aoc.GetInput(25, false, ""), "\n\n") + + var locks [][5]int + var keys [][5]int + + for _, i := range rawPlans { + lines := strings.Split(i, "\n") + schematic := grid.ToByteGrid(i) + + result := [5]int{} + if lines[0] == "#####" { + for j := 0; j < 5; j++ { + size := 0 + for i := 1; i < len(lines); i++ { + if schematic[i][j] == '.' { + break + } + size++ + } + result[j] = size + } + locks = append(locks, result) + } else { + for j := 0; j < 5; j++ { + size := 0 + for i := len(lines) - 2; i >= 0; i-- { + if schematic[i][j] == '.' { + break + } + size++ + } + result[j] = size + } + keys = append(keys, result) + } + } + + safe := 0 + for _, k := range keys { + SEARCH_LOCKS: + for _, l := range locks { + for idx := range k { + if l[idx]+k[idx] > 5 { + continue SEARCH_LOCKS + } + } + safe++ + } + } + + fmt.Println(safe) +}