aoc

My solutions for the Advent of Code
git clone https://git.tronto.net/aoc
Download | Log | Files | Refs | README

commit 37888633a8820f4e3166ac5e4b51156a239f3115
parent 4cbf560227e654b136509f7732239dcded631c3e
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Wed, 25 Dec 2024 06:55:22 +0100

Day 25 2024

Diffstat:
A2024/25/Makefile | 11+++++++++++
A2024/25/day25a.cpp | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/25/input | 3999+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2024/25/test | 39+++++++++++++++++++++++++++++++++++++++
4 files changed, 4104 insertions(+), 0 deletions(-)

diff --git a/2024/25/Makefile b/2024/25/Makefile @@ -0,0 +1,11 @@ +CC=g++ -std=c++20 -g -Wall + +a: + ${CC} -o a.out day25a.cpp + ./a.out + +b: + ${CC} -o b.out day25b.cpp + ./b.out + +.PHONY: a b diff --git a/2024/25/day25a.cpp b/2024/25/day25a.cpp @@ -0,0 +1,55 @@ +#include <algorithm> +#include <cstdint> +#include <iostream> +#include <map> +#include <queue> +#include <ranges> +#include <set> +#include <sstream> +#include <string> +#include <string_view> +#include <vector> +using namespace std; + +class KeyLock { +public: + KeyLock() { fill(a, a+5, 0); } + + void addrow(const string& s) { + for (int i = 0; i < 5; i++) + a[i] += s[i] == '#'; + } + + bool operator&(const KeyLock& other) const { + for (int i = 0; i < 5; i++) + if (a[i] + other.a[i] > 5) + return false; + return true; + } +private: + int a[5]; +}; + +int main() { + vector<KeyLock> keys, locks; + string line; + while (getline(cin, line)) { + KeyLock k; + bool key = line[0] == '.'; + for (int i = 0; i < 5; i++) { + getline(cin, line); + k.addrow(line); + } + if (key) keys.push_back(k); + else locks.push_back(k); + getline(cin, line); + getline(cin, line); + } + + int tot = 0; + for (auto k : keys) + for (auto l : locks) + tot += (k & l) ? 1 : 0; + cout << tot << endl; + return 0; +} diff --git a/2024/25/input b/2024/25/input @@ -0,0 +1,3999 @@ +..... +#.... +#.#.# +#.#.# +#.#.# +###.# +##### + +..... +...#. +...#. +...#. +#..#. +#.##. +##### + +##### +##### +##### +.#.#. +..... +..... +..... + +##### +##.## +#..## +#...# +#.... +..... +..... + +##### +.#### +..### +...## +...#. +..... +..... + +..... +..... +..#.. +..#.# +#.#.# +#.### +##### + +##### +###.# +#.#.# +#...# +#...# +#.... +..... + +..... +.#... +.#..# +##..# +##.## +##.## +##### + +..... +..... +..... +#.... +##.#. +##.#. +##### + +##### +##### +##### +#.##. +...#. +..... +..... + +##### +.#.## +.#..# +.#..# +.#..# +.#..# +..... + +##### +##### +####. +#.##. +...#. +..... +..... + +##### +.###. +.#.#. +.#.#. +.#... +.#... +..... + +..... +..... +...#. +#.##. +#.##. +####. +##### + +##### +##### +##### +##### +.#.## +....# +..... + +##### +####. +.###. +.###. +.#.#. +...#. +..... + +##### +##### +.#### +..### +..#.# +....# +..... + +..... +...#. +...#. +.#.## +.#### +##### +##### + +##### +##### +#.#.# +#...# +#...# +#...# +..... + +..... +..... +..#.# +#.### +#.### +##### +##### + +..... +....# +....# +....# +.#.## +##.## +##### + +..... +..... +..... +..#.. +.###. +####. +##### + +##### +#.#.# +#.#.. +..#.. +..... +..... +..... + +..... +.#... +.#... +.#... +##..# +##.## +##### + +..... +....# +....# +...## +.#.## +##.## +##### + +..... +.#..# +##..# +###.# +###.# +##### +##### + +..... +...#. +...## +.#.## +.#.## +##### +##### + +##### +#.### +..### +..### +..### +...#. +..... + +..... +..#.. +.###. +.###. +.#### +.#### +##### + +..... +..... +#...# +#.#.# +#.#.# +###.# +##### + +##### +###.# +###.# +#.#.# +..#.# +..... +..... + +##### +##### +###.# +##..# +#...# +#.... +..... + +##### +#.### +#.#.# +..#.# +..#.# +..... +..... + +..... +..... +....# +#...# +##.## +##.## +##### + +##### +##### +##### +.#### +.#.#. +...#. +..... + +..... +#.... +#.#.. +#.#.. +#.#.# +#.### +##### + +..... +...#. +...## +#..## +#..## +#.### +##### + +##### +##### +#.#.# +#.#.. +..... +..... +..... + +..... +..#.# +#.#.# +##### +##### +##### +##### + +..... +.#... +###.# +###.# +###.# +##### +##### + +..... +..... +..... +....# +...## +#.### +##### + +##### +###.# +##..# +##..# +.#... +..... +..... + +..... +..... +...#. +.#.#. +.#.#. +####. +##### + +##### +##### +#.### +#.### +#..## +#..#. +..... + +..... +...#. +..##. +#.##. +#.##. +#.### +##### + +##### +##### +.#.## +...## +....# +....# +..... + +..... +..... +..... +.#.#. +.#.#. +.#.## +##### + +..... +..... +....# +.#..# +##.## +##.## +##### + +##### +##.## +##.## +.#.#. +.#.#. +..... +..... + +..... +..#.. +..#.. +..#.. +.##.# +.#### +##### + +##### +##.## +.#.## +.#.#. +.#... +..... +..... + +..... +#...# +#..## +#..## +##.## +##### +##### + +..... +....# +#...# +#...# +##..# +##.## +##### + +##### +.##.# +..#.# +..#.# +..#.. +..#.. +..... + +##### +#.### +#..## +#...# +....# +....# +..... + +##### +##### +.#.## +.#.## +...#. +...#. +..... + +##### +.#### +..### +..### +...## +....# +..... + +##### +##### +##### +#.### +#..## +...#. +..... + +..... +....# +.#..# +.#..# +.#.## +##.## +##### + +##### +###.# +###.# +.##.# +..#.. +..... +..... + +..... +#...# +#...# +#.#.# +##### +##### +##### + +..... +..#.# +..### +.#### +.#### +.#### +##### + +##### +##### +##.#. +#..#. +#..#. +..... +..... + +##### +#.### +#.##. +#.#.. +..#.. +..#.. +..... + +##### +##### +##### +#.#.# +#.#.# +#.#.. +..... + +##### +##### +##.## +.#.## +....# +..... +..... + +##### +##### +.###. +.#.#. +.#.#. +..... +..... + +##### +.#### +.#### +.###. +.##.. +.#... +..... + +..... +..... +..... +..#.# +.##.# +##### +##### + +##### +.###. +.###. +.##.. +..#.. +..#.. +..... + +##### +##### +##.## +##.## +##.#. +#.... +..... + +##### +##### +##### +#.#.# +....# +..... +..... + +##### +#.### +#.#.# +#.#.. +#.... +..... +..... + +..... +..... +..... +#.... +#.#.# +#.#.# +##### + +##### +.#### +.#### +.###. +.###. +.#.#. +..... + +##### +##### +##### +.###. +..#.. +..#.. +..... + +..... +..... +..#.# +.##.# +.##.# +.##.# +##### + +..... +..... +...#. +...#. +#.### +##### +##### + +##### +#.##. +..#.. +..#.. +..... +..... +..... + +..... +..... +#.... +#.... +#.... +##.#. +##### + +..... +#.... +#.... +#.#.# +###.# +###.# +##### + +..... +.#... +##..# +##..# +###.# +##### +##### + +..... +..#.. +..#.. +#.#.# +#.#.# +##### +##### + +##### +####. +.#.#. +.#.#. +.#.#. +.#... +..... + +##### +####. +####. +####. +.##.. +.#... +..... + +..... +..... +...#. +..##. +.###. +.###. +##### + +..... +..... +..... +.#..# +###.# +###.# +##### + +##### +##### +##### +##.#. +#..#. +#.... +..... + +..... +...#. +.#.#. +.#.#. +####. +####. +##### + +##### +###.# +###.# +.#... +.#... +..... +..... + +..... +...#. +..##. +#.##. +#.### +##### +##### + +##### +##### +##### +.#.#. +.#.#. +.#... +..... + +##### +##.#. +##.#. +.#.#. +.#.#. +.#... +..... + +..... +.#... +.##.. +.##.. +###.# +###.# +##### + +##### +#.### +..##. +..##. +...#. +...#. +..... + +##### +##### +##### +#.##. +..#.. +..#.. +..... + +..... +#.... +#...# +#..## +#.### +##### +##### + +..... +...#. +#..#. +##.## +##### +##### +##### + +##### +####. +####. +#.#.. +#.#.. +..... +..... + +..... +.#..# +.#.## +##.## +##.## +##### +##### + +##### +##### +##.#. +#..#. +#..#. +#..#. +..... + +..... +....# +.#..# +.#..# +###.# +##### +##### + +##### +##.## +#..## +#..## +#..#. +..... +..... + +..... +..#.. +.##.. +.###. +.###. +.###. +##### + +##### +##### +#.##. +#.##. +#.#.. +#.#.. +..... + +##### +##.## +#..## +#...# +#...# +....# +..... + +##### +####. +##.#. +#.... +..... +..... +..... + +##### +##### +#.### +#.#.# +..#.# +..... +..... + +##### +#.#.# +#...# +....# +....# +....# +..... + +..... +..... +..#.# +.#### +.#### +##### +##### + +..... +..... +..... +#..#. +#..#. +##.## +##### + +..... +..#.. +..#.# +#.#.# +#.### +#.### +##### + +..... +..... +...#. +#..#. +#..## +##.## +##### + +##### +##### +.#### +.#### +.##.# +..#.# +..... + +..... +..#.# +..#.# +#.#.# +#.#.# +###.# +##### + +..... +..#.. +#.#.. +#.##. +#.##. +####. +##### + +##### +##### +#.### +#.#.# +..#.. +..#.. +..... + +..... +..... +.#.#. +.#### +##### +##### +##### + +##### +##### +##.## +##.## +.#.## +.#..# +..... + +##### +.###. +.###. +.##.. +..#.. +..... +..... + +..... +..... +...#. +#.### +#.### +##### +##### + +##### +##.## +##.## +##..# +.#..# +.#..# +..... + +..... +..... +.#... +.#... +.#... +.##.# +##### + +##### +##### +###.# +##... +#.... +#.... +..... + +##### +.#### +.###. +.###. +.#.#. +..... +..... + +##### +.#### +.#.## +.#.#. +...#. +...#. +..... + +..... +..... +...#. +#..#. +##.#. +##.## +##### + +..... +..... +..... +.#..# +.#..# +.##.# +##### + +##### +##.## +##..# +##... +.#... +..... +..... + +##### +.#### +.#### +.###. +.#.#. +...#. +..... + +..... +...#. +..##. +..##. +#.##. +####. +##### + +##### +##### +#.#.# +#.#.# +#.#.# +..#.. +..... + +##### +##### +###.# +#.#.# +#.#.# +..#.# +..... + +..... +..... +.#..# +.#..# +###.# +###.# +##### + +..... +..#.. +#.#.. +#.#.# +##### +##### +##### + +##### +##### +.##.# +.##.# +.##.. +..#.. +..... + +..... +...#. +...#. +...#. +..##. +#.##. +##### + +..... +...#. +.#.#. +##.#. +##.#. +##### +##### + +..... +...#. +...## +...## +.#.## +.#.## +##### + +..... +..... +#.... +#.#.# +#.#.# +#.### +##### + +##### +##### +#.### +#..## +....# +..... +..... + +##### +####. +###.. +#.#.. +#.#.. +#.#.. +..... + +##### +##.## +##..# +##..# +.#..# +.#... +..... + +##### +##### +.#### +..#.# +..#.# +..#.. +..... + +..... +..... +..#.# +..#.# +#.### +#.### +##### + +..... +....# +...## +.#.## +.#.## +.#### +##### + +..... +#.... +#...# +#..## +##.## +##.## +##### + +..... +..... +#...# +#...# +##.## +##### +##### + +##### +.##.# +.#..# +.#..# +.#... +..... +..... + +..... +..... +...#. +...#. +..##. +.###. +##### + +##### +.###. +.###. +.#.#. +.#... +..... +..... + +##### +####. +####. +##.#. +#..#. +#..#. +..... + +##### +#.### +#.### +#..## +...## +....# +..... + +..... +#..#. +#..#. +##.#. +##.#. +####. +##### + +##### +##.## +#..## +#...# +#.... +#.... +..... + +##### +.##.# +.##.# +..#.# +..#.# +..... +..... + +##### +##### +.#### +.###. +.###. +..#.. +..... + +..... +#.... +#...# +#...# +#..## +#.### +##### + +##### +####. +##.#. +#..#. +..... +..... +..... + +..... +..... +..#.. +..##. +.###. +##### +##### + +..... +..... +.#... +##... +###.. +####. +##### + +..... +..... +..#.. +..##. +.###. +####. +##### + +..... +..... +#.#.# +#.### +#.### +##### +##### + +..... +.#... +.##.. +.##.. +.##.# +.##.# +##### + +..... +....# +....# +#...# +#.#.# +###.# +##### + +..... +#..#. +#.##. +#.##. +##### +##### +##### + +..... +....# +....# +..#.# +.##.# +.#### +##### + +##### +##.## +##.## +##.## +.#..# +.#..# +..... + +##### +##### +#.### +#.### +..##. +..#.. +..... + +..... +..... +.#... +.#.#. +.#.#. +.#.## +##### + +..... +....# +#...# +#..## +#..## +#.### +##### + +..... +..... +#.#.. +#.#.. +####. +####. +##### + +##### +##### +##### +.#### +..### +..#.# +..... + +..... +#.... +#.#.. +####. +##### +##### +##### + +##### +###.# +##..# +##..# +.#..# +..... +..... + +..... +....# +#.#.# +#.#.# +#.### +#.### +##### + +##### +.###. +.##.. +..#.. +..#.. +..... +..... + +..... +...#. +..##. +..##. +.#### +.#### +##### + +##### +##### +#.### +#.##. +#.#.. +#.#.. +..... + +##### +##### +###.# +###.# +###.# +.#..# +..... + +##### +###.# +##..# +##..# +#.... +..... +..... + +..... +..... +....# +.#..# +.#.## +##### +##### + +..... +.#... +##.#. +##.#. +##.#. +##### +##### + +..... +..#.. +#.#.# +#.#.# +#.#.# +#.#.# +##### + +##### +##### +##.#. +#..#. +#..#. +#.... +..... + +##### +####. +####. +#.##. +..##. +...#. +..... + +..... +#.#.. +#.##. +#.##. +####. +####. +##### + +..... +..... +#...# +#...# +#..## +##.## +##### + +##### +###.# +###.# +#.#.# +..#.. +..... +..... + +##### +###.# +###.# +###.# +###.# +.#..# +..... + +..... +..... +#..#. +##.## +##.## +##### +##### + +##### +####. +#.#.. +..#.. +..#.. +..... +..... + +##### +##### +###.# +.##.# +.#..# +.#..# +..... + +..... +..#.. +..#.. +..#.. +#.#.. +#.##. +##### + +..... +#.... +#...# +#.#.# +#.#.# +###.# +##### + +..... +....# +#...# +#.#.# +#.#.# +###.# +##### + +##### +####. +####. +###.. +#.#.. +..... +..... + +##### +.#.## +.#..# +.#..# +....# +..... +..... + +..... +..#.. +..#.# +#.#.# +#.#.# +##### +##### + +..... +#.... +#.... +#...# +#...# +##.## +##### + +##### +##### +.#### +.#### +..### +..#.# +..... + +##### +##.## +.#.## +.#.#. +.#.#. +...#. +..... + +##### +##### +#.##. +#.##. +...#. +...#. +..... + +##### +##### +####. +####. +###.. +.#... +..... + +##### +##### +##### +#.### +#.##. +#..#. +..... + +##### +.#.## +.#.## +.#.## +.#.## +...#. +..... + +##### +##.## +#..## +....# +..... +..... +..... + +..... +....# +#.#.# +#.#.# +#.#.# +##### +##### + +##### +####. +###.. +###.. +#.#.. +..#.. +..... + +##### +##### +###.# +###.# +.#... +..... +..... + +..... +.#..# +##..# +##..# +##.## +##.## +##### + +..... +...#. +...#. +...#. +.#.## +##.## +##### + +..... +..... +..... +.#... +.##.# +###.# +##### + +##### +##.## +.#.## +.#..# +.#..# +..... +..... + +..... +..... +..#.. +..#.# +..#.# +.#### +##### + +##### +###.# +###.# +###.# +#.#.. +..... +..... + +..... +..#.. +.###. +####. +##### +##### +##### + +..... +..... +..#.. +#.#.. +####. +##### +##### + +..... +..... +.#... +.#.#. +##.## +##### +##### + +##### +###.# +###.# +#.#.# +#...# +#...# +..... + +##### +##.#. +##.#. +.#.#. +.#.#. +..... +..... + +##### +##.## +##..# +.#..# +....# +..... +..... + +##### +##### +##.## +##.## +.#.#. +.#... +..... + +..... +..... +..#.. +#.#.. +###.# +###.# +##### + +##### +###.# +###.. +#.#.. +#.#.. +#.... +..... + +..... +..... +.#.#. +.#.#. +####. +##### +##### + +##### +.#### +.#.## +.#.## +...## +...#. +..... + +..... +#.... +#..#. +#..#. +##.#. +##### +##### + +..... +..#.. +..##. +..##. +#.### +##### +##### + +..... +...#. +...#. +.#.## +.#.## +##.## +##### + +..... +..#.. +.###. +.###. +.###. +####. +##### + +##### +###.# +#.#.# +#.#.. +#.... +#.... +..... + +..... +..... +#.... +##... +##.#. +##### +##### + +..... +#.... +##... +##... +##..# +###.# +##### + +..... +..... +.#.#. +.#.#. +.#.#. +##.## +##### + +..... +..#.# +..#.# +.##.# +###.# +###.# +##### + +..... +.#... +.#... +.#.#. +.#### +.#### +##### + +..... +..... +.#... +##..# +##.## +##### +##### + +##### +#.### +#..## +#..## +#..## +#..#. +..... + +##### +##### +##### +.#.#. +.#.#. +.#.#. +..... + +..... +....# +..#.# +.##.# +.#### +##### +##### + +##### +##### +.##.# +.#..# +.#..# +....# +..... + +##### +##.#. +##.#. +#..#. +#..#. +..... +..... + +..... +#.... +#...# +#...# +#.#.# +#.### +##### + +##### +##### +#.### +#.#.# +#.#.# +..#.. +..... + +##### +##### +##.## +##..# +#.... +..... +..... + +##### +##.## +##..# +#.... +..... +..... +..... + +##### +####. +####. +#.#.. +..#.. +..#.. +..... + +##### +####. +#.##. +#..#. +...#. +..... +..... + +##### +###.# +###.# +###.# +##..# +.#... +..... + +##### +#.##. +#.##. +#..#. +#.... +..... +..... + +##### +##### +##.#. +#..#. +#.... +..... +..... + +..... +..... +..#.# +.##.# +###.# +###.# +##### + +##### +##### +##.## +.#.#. +.#.#. +...#. +..... + +..... +.#... +.#..# +.##.# +.##.# +.#### +##### + +..... +..... +..... +.#.#. +####. +####. +##### + +..... +...#. +...## +#..## +#..## +##.## +##### + +##### +##### +##.#. +##... +.#... +..... +..... + +##### +###.# +.##.. +.##.. +.##.. +..#.. +..... + +##### +#.#.# +....# +....# +....# +....# +..... + +##### +##### +##### +.#### +..#.# +..#.# +..... + +..... +..... +#.... +#..#. +#..#. +##.#. +##### + +..... +#.... +##... +###.. +###.. +####. +##### + +##### +#.### +#..## +#..## +#..#. +...#. +..... + +..... +..... +..... +#.#.. +#.#.# +#.#.# +##### + +##### +####. +####. +####. +#.#.. +#.#.. +..... + +##### +##### +###.# +###.# +##..# +#.... +..... + +..... +#...# +#...# +#..## +##.## +##.## +##### + +##### +#.### +#.#.# +#.#.# +#.... +..... +..... + +..... +.#... +.#... +.#... +###.. +###.# +##### + +##### +#.### +...#. +...#. +..... +..... +..... + +##### +##### +##### +#.##. +#.##. +..#.. +..... + +##### +##### +##### +#.#.# +..#.. +..... +..... + +##### +.###. +.###. +.##.. +.#... +..... +..... + +..... +..... +.#... +.##.# +.##.# +.#### +##### + +##### +#.### +#.### +..### +...## +....# +..... + +..... +..... +...#. +...#. +..##. +#.### +##### + +..... +..... +..... +..#.. +#.##. +#.##. +##### + +..... +..#.. +.##.. +.###. +####. +####. +##### + +##### +#.### +..#.# +..#.# +..#.. +..... +..... + +..... +...#. +..##. +..### +#.### +#.### +##### + +..... +#.#.. +#.#.. +#.#.. +#.#.. +#.#.# +##### + +##### +##### +####. +#.##. +#.#.. +..#.. +..... + +##### +###.# +###.# +#.#.. +#.... +#.... +..... + +..... +.#... +.#..# +.#..# +###.# +###.# +##### + +..... +...#. +...#. +.#.#. +##### +##### +##### + +..... +...#. +.#.#. +.###. +.###. +.###. +##### + +##### +.#.## +...## +....# +....# +..... +..... + +##### +####. +.###. +..##. +..##. +..#.. +..... + +..... +..#.. +#.#.. +#.#.# +#.#.# +#.#.# +##### + +##### +#.##. +..##. +..##. +..##. +..#.. +..... + +##### +##### +###.# +##..# +##..# +.#... +..... + +##### +#.### +...## +...## +...## +....# +..... + +##### +##.## +##.#. +##.#. +.#... +.#... +..... + +##### +###.# +###.. +###.. +###.. +#.#.. +..... + +..... +...#. +.#.#. +.#.#. +.###. +.#### +##### + +..... +..... +#...# +#..## +#.### +##### +##### + +##### +#.### +#.### +..### +...## +...#. +..... + +..... +....# +#...# +#..## +##.## +##.## +##### + +..... +..... +#..#. +##.#. +##.#. +##.## +##### + +..... +..... +...#. +..### +.#### +##### +##### + +..... +..#.. +..##. +#.##. +#.##. +#.### +##### + +##### +##.## +##.## +##.## +#..#. +#..#. +..... + +..... +#.... +##.#. +####. +##### +##### +##### + +##### +###.# +##... +##... +.#... +.#... +..... + +..... +..... +..... +#.... +#...# +##.## +##### + +..... +..#.# +#.#.# +#.#.# +#.#.# +###.# +##### + +##### +##### +###.# +#.#.# +#.#.# +#...# +..... + +##### +##### +##### +#.#.# +..#.# +..#.. +..... + +..... +#.... +#.... +#.... +#.#.# +###.# +##### + +..... +....# +....# +.#..# +##.## +##.## +##### + +##### +##### +####. +.###. +.#.#. +...#. +..... + +##### +##### +##.## +.#.## +.#..# +.#..# +..... + +##### +##### +##### +##### +.#.#. +...#. +..... + +..... +..... +.#..# +.#..# +###.# +##### +##### + +..... +.#... +.#.#. +.#.## +##### +##### +##### + +##### +##### +##### +##.## +#..## +...#. +..... + +..... +.#... +.#... +.#..# +.#.## +.#.## +##### + +..... +...#. +...#. +#..#. +##.#. +##### +##### + +##### +#.### +#.### +..##. +..##. +...#. +..... + +..... +..... +..... +..#.# +#.#.# +###.# +##### + +##### +##.## +##.#. +.#.#. +.#.#. +..... +..... + +..... +..... +..#.. +.##.# +.##.# +##### +##### + +##### +##.## +#..## +#...# +....# +..... +..... + +##### +##### +#.### +#.### +..#.# +..... +..... + +..... +..#.. +#.#.. +#.##. +#.##. +#.### +##### + +..... +..... +..... +.#.#. +.#.#. +.#### +##### + +##### +#.### +#.##. +#.##. +..#.. +..#.. +..... + +##### +###.# +#.#.# +#...# +....# +....# +..... + +##### +##### +##### +##.## +#..## +....# +..... + +..... +..... +....# +.#..# +.#..# +###.# +##### + +##### +.#### +.###. +.##.. +.#... +..... +..... + +..... +....# +.#.## +.#.## +##.## +##.## +##### + +..... +..... +.#... +.#.#. +.#.#. +##.## +##### + +##### +##### +.#.#. +.#... +.#... +.#... +..... + +..... +..... +.#.#. +.#.#. +.#.#. +.###. +##### + +##### +#.### +...## +....# +....# +..... +..... + +..... +..... +..... +...#. +...#. +#.##. +##### + +..... +..... +#.... +#..#. +#.##. +#.### +##### + +##### +##.## +#..## +...#. +...#. +..... +..... + +##### +###.# +.##.# +.##.# +.#..# +.#... +..... + +##### +##.#. +##... +##... +#.... +#.... +..... + +..... +..... +...#. +.#.#. +##.## +##### +##### + +##### +##### +##.## +#..#. +#..#. +#..#. +..... + +..... +.#.#. +.###. +.###. +####. +####. +##### + +..... +..... +....# +.#.## +.#.## +##### +##### + +..... +.#... +.#... +.#..# +##..# +###.# +##### + +##### +##### +##.#. +.#.#. +.#... +.#... +..... + +..... +..... +...#. +.#.#. +##.#. +##### +##### + +..... +#.#.. +#.##. +####. +####. +##### +##### + +##### +####. +.##.. +.##.. +..#.. +..#.. +..... + +##### +##.#. +#..#. +#..#. +...#. +...#. +..... + +..... +..... +.#..# +##.## +##.## +##### +##### + +..... +.#... +###.. +####. +##### +##### +##### + +..... +....# +..#.# +.#### +.#### +##### +##### + +##### +.#### +.#### +.#### +.#.#. +..... +..... + +..... +#..#. +##.#. +##.## +##.## +##.## +##### + +..... +..... +..... +..... +#..#. +##.#. +##### + +##### +##### +##.## +##.## +#...# +....# +..... + +##### +#.### +..### +..#.# +..#.# +..#.# +..... + +##### +##### +##.## +.#..# +....# +..... +..... + +##### +##.## +##.## +##.#. +.#.#. +.#... +..... + +..... +.#... +.#.#. +##.#. +##.## +##### +##### + +..... +..... +.#... +.#... +##.#. +####. +##### + +##### +##### +.#### +.#### +.###. +..#.. +..... + +##### +###.# +.##.# +.##.# +.#... +..... +..... + +..... +.#... +.#... +.##.. +####. +##### +##### + +..... +..#.. +..#.. +#.#.. +#.##. +#.##. +##### + +..... +..... +..... +.#.#. +.#.#. +##.## +##### + +..... +#.... +#.#.. +####. +####. +##### +##### + +##### +##.## +#..## +#...# +#...# +#.... +..... + +##### +##.## +##.#. +#..#. +..... +..... +..... + +##### +.#### +.#.## +....# +....# +..... +..... + +##### +##### +.#### +.##.# +.##.# +..#.. +..... + +..... +..... +.#..# +.#.## +##.## +##.## +##### + +##### +####. +.###. +.##.. +.#... +.#... +..... + +##### +.##.# +..#.# +....# +..... +..... +..... + +..... +#.... +##... +###.# +###.# +##### +##### + +..... +..... +..... +#..#. +#.##. +#.##. +##### + +##### +.#### +..### +..##. +..##. +...#. +..... + +..... +..... +..#.# +.##.# +.#### +.#### +##### + +..... +....# +....# +#...# +#..## +#.### +##### + +..... +..#.# +..#.# +#.#.# +#.#.# +#.#.# +##### + +..... +..... +..#.. +..#.. +#.#.# +##### +##### + +##### +.#### +.###. +.#.#. +.#.#. +...#. +..... + +##### +###.# +###.# +.##.# +..#.# +..#.. +..... + +..... +.#... +###.. +####. +####. +##### +##### + +..... +.#.#. +##.## +##.## +##### +##### +##### + +..... +...#. +#..## +#.### +#.### +##### +##### + +##### +#.### +#.### +..#.# +..#.# +..... +..... + +..... +..#.. +.##.. +.##.. +.###. +####. +##### + +##### +#.##. +...#. +...#. +...#. +..... +..... + +##### +###.# +###.# +#.#.# +#.#.. +..#.. +..... + +##### +##### +##### +.#.## +.#..# +.#..# +..... + +##### +##.#. +##.#. +.#.#. +.#.#. +...#. +..... + +##### +##### +##### +###.# +.##.# +..#.# +..... + +..... +#..#. +#..#. +#..## +#..## +##.## +##### + +##### +.#### +.#.## +.#.## +.#.#. +.#.#. +..... + +##### +####. +####. +#.##. +#.#.. +#.#.. +..... + +..... +..... +..#.# +.##.# +.##.# +.#### +##### + +..... +.#... +##... +##... +##..# +###.# +##### + +##### +##### +##### +##.#. +.#.#. +..... +..... + +..... +..#.. +..##. +.###. +##### +##### +##### + +..... +..#.. +..#.. +#.##. +####. +##### +##### + +..... +..... +..... +..#.# +.#### +##### +##### + +##### +####. +##.#. +#..#. +...#. +...#. +..... + +..... +..... +.#..# +.#..# +.#.## +.#### +##### + +##### +##### +.#### +.#.#. +.#... +.#... +..... + +##### +.#### +..### +..##. +...#. +..... +..... + +..... +#.#.. +#.#.. +###.. +###.. +####. +##### + +##### +.#### +.##.# +.##.. +.##.. +..#.. +..... + +..... +.#... +.#... +.#.#. +.#### +##### +##### + +##### +##### +#.#.# +..#.# +....# +..... +..... + +##### +##.#. +.#... +..... +..... +..... +..... + +..... +...#. +.#.## +.#.## +.#### +.#### +##### + +..... +.#..# +.##.# +.##.# +.##.# +##### +##### + +..... +..#.. +.###. +.###. +.#### +##### +##### + +..... +..... +..... +.#..# +.#.## +##.## +##### + +..... +.#... +.#... +###.. +###.. +####. +##### + +..... +.#... +.#... +##.#. +####. +##### +##### + +##### +##### +#.##. +..##. +..#.. +..... +..... + +..... +#...# +#.#.# +#.#.# +#.### +##### +##### + +..... +..#.. +..#.. +..#.. +#.##. +#.##. +##### + +..... +#.... +##... +###.. +###.# +###.# +##### + +##### +.###. +.###. +.#.#. +.#.#. +...#. +..... + +..... +....# +..#.# +#.#.# +#.### +#.### +##### + +..... +....# +...## +...## +.#.## +##### +##### + +..... +....# +..#.# +.##.# +.##.# +##### +##### + +##### +####. +#.##. +#.##. +..#.. +..#.. +..... + +..... +..... +..#.# +.##.# +##### +##### +##### + +##### +##.## +.#.## +.#..# +.#..# +.#..# +..... + +..... +...#. +...#. +.#.#. +.#.#. +.###. +##### + +..... +.#... +##... +##... +##.#. +##.#. +##### + +##### +#.##. +#..#. +#..#. +#..#. +...#. +..... + +##### +###.# +.##.# +.#... +.#... +..... +..... + +..... +...#. +#..#. +#.##. +#.##. +#.### +##### + +##### +##### +####. +####. +#.##. +...#. +..... + +##### +.#.## +.#..# +.#..# +.#..# +....# +..... + +##### +##.## +#...# +#...# +#...# +#...# +..... + +##### +.#### +.###. +.###. +..#.. +..... +..... + +##### +##### +##.## +#..## +...#. +..... +..... + +..... +..... +...#. +#..#. +#.### +##### +##### + +##### +##### +.##.# +.##.. +..#.. +..... +..... + +..... +#.... +#.... +#.#.# +#.#.# +###.# +##### + +##### +###.# +.##.# +.##.# +.#..# +..... +..... + +..... +...#. +...#. +#..#. +#.##. +##### +##### + +..... +..... +..#.. +..#.. +.##.. +###.# +##### + +##### +##### +.#.## +....# +....# +..... +..... + +..... +..... +..... +#.#.# +#.#.# +###.# +##### + +##### +##### +##### +#.### +#.### +#..#. +..... + +##### +##.## +.#.## +.#.#. +.#.#. +.#.#. +..... + +##### +##### +#.### +..##. +..#.. +..#.. +..... + +##### +##### +##### +##.#. +#..#. +..... +..... + +..... +..... +..#.. +#.#.. +#.#.. +#.##. +##### + +..... +..#.. +.##.. +.##.. +###.# +##### +##### + +##### +##### +#.### +#.#.# +#.... +#.... +..... + +..... +#.#.. +#.#.. +#.#.. +###.. +###.# +##### + +..... +.#... +##... +###.. +###.. +####. +##### + +##### +##### +#.#.# +#.#.# +#.#.# +#.#.. +..... + +..... +..... +..... +..... +#.#.. +#.##. +##### + +##### +#.##. +#.##. +#.##. +#.#.. +#.... +..... + +##### +##### +.###. +.##.. +.##.. +..#.. +..... + +..... +.#..# +.#..# +.##.# +##### +##### +##### + +..... +....# +.#..# +.#..# +##..# +###.# +##### + +##### +###.# +#.#.# +..#.# +..#.# +..#.. +..... + +..... +..... +..... +#.... +#.#.# +###.# +##### + +##### +.##.# +.##.# +..#.. +..... +..... +..... + +..... +..... +#.... +#.#.# +##### +##### +##### + +##### +####. +###.. +#.#.. +..#.. +..#.. +..... + +##### +##### +#.##. +#.##. +..##. +...#. +..... + +..... +..... +.#... +.##.. +.##.. +.##.# +##### + +..... +.#.#. +####. +####. +####. +##### +##### + +..... +#.#.. +#.#.. +#.##. +#.##. +#.##. +##### + +..... +..... +..... +#.#.. +#.#.# +#.### +##### + +##### +##### +#.### +#.#.# +#.#.# +#.#.. +..... + +..... +.#... +.##.. +.###. +####. +##### +##### + +..... +#.#.. +#.#.. +####. +####. +##### +##### + +..... +..... +..... +#..#. +##.#. +##.#. +##### + +##### +##### +##### +###.# +.#... +..... +..... + +##### +##### +.##.# +.##.# +..#.# +..... +..... + +..... +..... +..#.. +#.#.. +#.##. +##### +##### + +..... +...#. +#..#. +#..#. +#.##. +##### +##### + +##### +##### +#.##. +#..#. +#..#. +#.... +..... + +..... +....# +....# +.#.## +.#.## +.#.## +##### + +##### +##.## +##.#. +.#... +.#... +.#... +..... + +##### +.###. +.#.#. +.#.#. +.#.#. +..... +..... + +##### +#.### +...## +....# +..... +..... +..... + +..... +..... +.#... +.#.#. +##.#. +####. +##### + +..... +.#..# +##..# +##.## +##### +##### +##### + +##### +###.# +##..# +.#..# +.#..# +.#..# +..... + +..... +#.... +#.... +#...# +#.#.# +#.#.# +##### + +..... +..... +..... +..#.. +#.#.. +#.##. +##### + +##### +##### +#.### +#..#. +#.... +#.... +..... + +##### +##### +.#### +.##.# +.##.# +.#... +..... + +..... +..#.. +.##.. +###.# +##### +##### +##### + +..... +.#..# +.#..# +.#..# +.#.## +##### +##### + +..... +..... +..#.. +.##.. +###.# +###.# +##### + +##### +.#.## +.#.## +.#.## +...## +....# +..... + +##### +###.# +.##.. +.##.. +.##.. +.#... +..... + +##### +##.## +##.## +.#.## +.#.## +.#..# +..... diff --git a/2024/25/test b/2024/25/test @@ -0,0 +1,39 @@ +##### +.#### +.#### +.#### +.#.#. +.#... +..... + +##### +##.## +.#.## +...## +...#. +...#. +..... + +..... +#.... +#.... +#...# +#.#.# +#.### +##### + +..... +..... +#.#.. +###.. +###.# +###.# +##### + +..... +..... +..... +#.... +#.#.. +#.#.# +#####