From 97a4330bc0000e92b3a751f967652ee065d52c6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?=
 <geoffrey@frogeye.fr>
Date: Wed, 25 Dec 2024 12:58:02 +0100
Subject: [PATCH] Initial commit

---
 .gitignore               |   7 +
 2023/1/obfuscated.py     |   5 +
 2023/1/script.py         |  30 ++++
 2023/2/one.py            |  28 ++++
 2023/2/two.py            |  24 +++
 2023/24/one.py           |  16 ++
 2023/3/one.py            |  41 ++++++
 2023/3/two.py            |  42 ++++++
 2024/1/one.py            |  26 ++++
 2024/1/two.py            |  25 ++++
 2024/10/one.py           |  61 ++++++++
 2024/10/two.py           |  64 ++++++++
 2024/11/one.py           |  30 ++++
 2024/11/two.py           | 121 +++++++++++++++
 2024/12/one.py           |  83 +++++++++++
 2024/12/reddit_test      |   5 +
 2024/12/two.py           | 136 +++++++++++++++++
 2024/13/Notes.xopp       | Bin 0 -> 266872 bytes
 2024/13/demog            |  12 ++
 2024/13/one.py           |  78 ++++++++++
 2024/13/two.py           | 223 ++++++++++++++++++++++++++++
 2024/13/two_clean.py     | 123 ++++++++++++++++
 2024/13/two_reddit.py    |  64 ++++++++
 2024/13/two_simpy.py     |  82 +++++++++++
 2024/14/one.py           |  88 +++++++++++
 2024/14/two.py           |  95 ++++++++++++
 2024/14/two_extra.py     |  96 ++++++++++++
 2024/15/demog            |   6 +
 2024/15/one.py           |  75 ++++++++++
 2024/15/two.py           | 110 ++++++++++++++
 2024/16/:w               |   4 +
 2024/16/README.md        |  23 +++
 2024/16/demog            |  15 ++
 2024/16/demog0           |   4 +
 2024/16/networkx_test.py |  86 +++++++++++
 2024/16/numpy_test.py    | 135 +++++++++++++++++
 2024/16/one.py           |  86 +++++++++++
 2024/16/one_opti.py      |  93 ++++++++++++
 2024/16/reddit_edge_case |  27 ++++
 2024/16/reddit_open_maze |  14 ++
 2024/16/two.py           | 105 +++++++++++++
 2024/16/two2.py          |  95 ++++++++++++
 2024/16/two_opti.py      | 111 ++++++++++++++
 2024/17/Notes.xopp       | Bin 0 -> 28997 bytes
 2024/17/README.md        |   4 +
 2024/17/demog            |   5 +
 2024/17/one.py           |  69 +++++++++
 2024/17/two.py           | 202 +++++++++++++++++++++++++
 2024/17/two_bf.py        | 125 ++++++++++++++++
 2024/17/two_dfs.py       |  83 +++++++++++
 2024/17/two_fixed.py     |  78 ++++++++++
 2024/18/one.py           | 109 ++++++++++++++
 2024/18/two.py           | 121 +++++++++++++++
 2024/19/.gitignore       |   1 +
 2024/19/colors.py        |   8 +
 2024/19/one.py           |  28 ++++
 2024/19/two.py           |  32 ++++
 2024/2/one.py            |  26 ++++
 2024/2/two.py            |  37 +++++
 2024/20/README.md        |   2 +
 2024/20/demog            |   4 +
 2024/20/demog2           |  32 ++++
 2024/20/demog3           |   5 +
 2024/20/one.py           | 129 ++++++++++++++++
 2024/20/reddit_part3     |  41 ++++++
 2024/20/reddit_part3g    |  41 ++++++
 2024/20/two.py           | 153 +++++++++++++++++++
 2024/20/two_correct.py   | 212 +++++++++++++++++++++++++++
 2024/20/two_fast.py      | 172 ++++++++++++++++++++++
 2024/21/Notes.xopp       | Bin 0 -> 85933 bytes
 2024/21/Spreadsheet.ods  | Bin 0 -> 21560 bytes
 2024/21/demog            |   1 +
 2024/21/one.py           |  98 +++++++++++++
 2024/21/onet.py          |  97 ++++++++++++
 2024/21/two.py           | 281 +++++++++++++++++++++++++++++++++++
 2024/21/two_fast.py      |  64 ++++++++
 2024/22/README.md        |  20 +++
 2024/22/one.py           |  29 ++++
 2024/22/two.py           | 121 +++++++++++++++
 2024/22/two_bf.py        |  87 +++++++++++
 2024/22/two_fast.py      | 112 ++++++++++++++
 2024/23/both_networkx.py |  65 +++++++++
 2024/23/one.py           |  36 +++++
 2024/23/two.py           |  55 +++++++
 2024/24/one.py           |  47 ++++++
 2024/24/two.py           | 161 ++++++++++++++++++++
 2024/24/two_test.py      | 163 +++++++++++++++++++++
 2024/25/one.py           |  45 ++++++
 2024/3/one.py            |  19 +++
 2024/3/two.py            |  26 ++++
 2024/4/one.py            |  59 ++++++++
 2024/4/two.py            |  27 ++++
 2024/5/one.py            |  41 ++++++
 2024/5/two.py            |  57 ++++++++
 2024/6/one.py            |  47 ++++++
 2024/6/two.py            |  67 +++++++++
 2024/7/one.py            |  34 +++++
 2024/7/two.py            |  37 +++++
 2024/8/one.py            |  38 +++++
 2024/8/two.py            |  49 +++++++
 2024/9/one.py            |  55 +++++++
 2024/9/two.py            |  64 ++++++++
 2024/X/one.py            |  11 ++
 2024/X/two.py            |   0
 2024/times.escape        |  33 +++++
 LICENSE.EUPLv1.2         | 153 +++++++++++++++++++
 LICENSE.Unlicense        |  24 +++
 README.md                |  32 ++++
 times.csv                |  30 ++++
 times.py                 | 308 +++++++++++++++++++++++++++++++++++++++
 110 files changed, 7006 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 2023/1/obfuscated.py
 create mode 100644 2023/1/script.py
 create mode 100644 2023/2/one.py
 create mode 100644 2023/2/two.py
 create mode 100644 2023/24/one.py
 create mode 100644 2023/3/one.py
 create mode 100644 2023/3/two.py
 create mode 100644 2024/1/one.py
 create mode 100644 2024/1/two.py
 create mode 100644 2024/10/one.py
 create mode 100644 2024/10/two.py
 create mode 100644 2024/11/one.py
 create mode 100644 2024/11/two.py
 create mode 100644 2024/12/one.py
 create mode 100644 2024/12/reddit_test
 create mode 100644 2024/12/two.py
 create mode 100644 2024/13/Notes.xopp
 create mode 100644 2024/13/demog
 create mode 100644 2024/13/one.py
 create mode 100644 2024/13/two.py
 create mode 100644 2024/13/two_clean.py
 create mode 100644 2024/13/two_reddit.py
 create mode 100644 2024/13/two_simpy.py
 create mode 100644 2024/14/one.py
 create mode 100644 2024/14/two.py
 create mode 100644 2024/14/two_extra.py
 create mode 100644 2024/15/demog
 create mode 100644 2024/15/one.py
 create mode 100644 2024/15/two.py
 create mode 100644 2024/16/:w
 create mode 100644 2024/16/README.md
 create mode 100644 2024/16/demog
 create mode 100644 2024/16/demog0
 create mode 100644 2024/16/networkx_test.py
 create mode 100644 2024/16/numpy_test.py
 create mode 100644 2024/16/one.py
 create mode 100644 2024/16/one_opti.py
 create mode 100644 2024/16/reddit_edge_case
 create mode 100644 2024/16/reddit_open_maze
 create mode 100644 2024/16/two.py
 create mode 100644 2024/16/two2.py
 create mode 100644 2024/16/two_opti.py
 create mode 100644 2024/17/Notes.xopp
 create mode 100644 2024/17/README.md
 create mode 100644 2024/17/demog
 create mode 100644 2024/17/one.py
 create mode 100644 2024/17/two.py
 create mode 100644 2024/17/two_bf.py
 create mode 100644 2024/17/two_dfs.py
 create mode 100644 2024/17/two_fixed.py
 create mode 100644 2024/18/one.py
 create mode 100644 2024/18/two.py
 create mode 100644 2024/19/.gitignore
 create mode 100644 2024/19/colors.py
 create mode 100644 2024/19/one.py
 create mode 100644 2024/19/two.py
 create mode 100644 2024/2/one.py
 create mode 100644 2024/2/two.py
 create mode 100644 2024/20/README.md
 create mode 100644 2024/20/demog
 create mode 100644 2024/20/demog2
 create mode 100644 2024/20/demog3
 create mode 100644 2024/20/one.py
 create mode 100644 2024/20/reddit_part3
 create mode 100644 2024/20/reddit_part3g
 create mode 100644 2024/20/two.py
 create mode 100644 2024/20/two_correct.py
 create mode 100644 2024/20/two_fast.py
 create mode 100644 2024/21/Notes.xopp
 create mode 100644 2024/21/Spreadsheet.ods
 create mode 100644 2024/21/demog
 create mode 100644 2024/21/one.py
 create mode 100644 2024/21/onet.py
 create mode 100644 2024/21/two.py
 create mode 100644 2024/21/two_fast.py
 create mode 100644 2024/22/README.md
 create mode 100644 2024/22/one.py
 create mode 100644 2024/22/two.py
 create mode 100644 2024/22/two_bf.py
 create mode 100644 2024/22/two_fast.py
 create mode 100644 2024/23/both_networkx.py
 create mode 100644 2024/23/one.py
 create mode 100644 2024/23/two.py
 create mode 100644 2024/24/one.py
 create mode 100644 2024/24/two.py
 create mode 100644 2024/24/two_test.py
 create mode 100644 2024/25/one.py
 create mode 100644 2024/3/one.py
 create mode 100644 2024/3/two.py
 create mode 100644 2024/4/one.py
 create mode 100644 2024/4/two.py
 create mode 100644 2024/5/one.py
 create mode 100644 2024/5/two.py
 create mode 100644 2024/6/one.py
 create mode 100644 2024/6/two.py
 create mode 100644 2024/7/one.py
 create mode 100644 2024/7/two.py
 create mode 100644 2024/8/one.py
 create mode 100644 2024/8/two.py
 create mode 100644 2024/9/one.py
 create mode 100644 2024/9/two.py
 create mode 100644 2024/X/one.py
 create mode 100644 2024/X/two.py
 create mode 100644 2024/times.escape
 create mode 100644 LICENSE.EUPLv1.2
 create mode 100644 LICENSE.Unlicense
 create mode 100644 README.md
 create mode 100644 times.csv
 create mode 100755 times.py

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3923250
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+# Don't include prompts and inputs as they're not free to copy
+**/input*
+**/prompt
+# Demos are also part of the prompt...
+**/demo*
+# ... except when I wrote those myself
+!**/demog*
diff --git a/2023/1/obfuscated.py b/2023/1/obfuscated.py
new file mode 100644
index 0000000..b7ea355
--- /dev/null
+++ b/2023/1/obfuscated.py
@@ -0,0 +1,5 @@
+import re
+d="zero|one|two|three|four|five|six|seven|eight|nine|\\d)"
+def f(l,p):
+ m=re.search(p,l)[1];return str(d.split("|").index(m)) if m in d else m
+print(sum(map(lambda l:int(f(l,f"({d}.*")+f(l,".*("+d)),open(0).readlines())))
diff --git a/2023/1/script.py b/2023/1/script.py
new file mode 100644
index 0000000..6514aa3
--- /dev/null
+++ b/2023/1/script.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+import re
+
+digits = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
+group = "|".join(digits + ["[0-9]"])
+
+tot = 0
+with open("lines.txt") as lines:
+    for line in lines.readlines():
+        print()
+        line = line.rstrip()
+        print(line)
+        last = re.search(rf"^.*({group})", line)
+        first = re.search(rf"({group}).*$", line)
+        print(first, last)
+        f = first[1]
+        l = last[1]
+        print(f, l)
+        if f in digits:
+            f = str(digits.index(f))
+        if l in digits:
+            l = str(digits.index(l))
+        print(f, l)
+        numb = int(f + l)
+        tot += numb
+        print(numb)
+print()
+
+print(tot)
diff --git a/2023/2/one.py b/2023/2/one.py
new file mode 100644
index 0000000..cdf394c
--- /dev/null
+++ b/2023/2/one.py
@@ -0,0 +1,28 @@
+maxs = {"red": 12, "green": 13, "blue": 14}
+
+gid = 0
+possible_gid_sum = 0
+
+with open("input") as lines:
+    for line in lines.readlines():
+        gid += 1
+        line = line.rstrip()
+        game_full, sets = line.split(":")
+        game, gid_str = game_full.split(" ")
+        assert int(gid_str) == gid
+        possible = True
+        for seet in sets.split(";"):
+            gcs = {"red": 0, "green": 0, "blue": 0}
+            for color in seet.split(","):
+                amount_str, color = color.strip().split(" ")
+                amount = int(amount_str)
+                gcs[color] += amount
+            for color, amount in gcs.items():
+                max = maxs[color]
+                if amount > max:
+                    possible = False
+        if possible:
+            possible_gid_sum += gid
+        print(gid, possible)
+
+print(possible_gid_sum)
diff --git a/2023/2/two.py b/2023/2/two.py
new file mode 100644
index 0000000..16443bb
--- /dev/null
+++ b/2023/2/two.py
@@ -0,0 +1,24 @@
+maxs = {"red": 12, "green": 13, "blue": 14}
+
+gid = 0
+power_sum = 0
+
+with open("input") as lines:
+    for line in lines.readlines():
+        gid += 1
+        line = line.rstrip()
+        game_full, sets = line.split(":")
+        game, gid_str = game_full.split(" ")
+        assert int(gid_str) == gid
+        possible = True
+        gcs = {"red": 0, "green": 0, "blue": 0}
+        for seet in sets.split(";"):
+            for color in seet.split(","):
+                amount_str, color = color.strip().split(" ")
+                amount = int(amount_str)
+                gcs[color] = max(amount, gcs[color])
+        power = gcs["red"] * gcs["green"] * gcs["blue"]
+        print(gid, power)
+        power_sum += power
+
+print(power_sum)
diff --git a/2023/24/one.py b/2023/24/one.py
new file mode 100644
index 0000000..5deaaf0
--- /dev/null
+++ b/2023/24/one.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+hailstones = []
+
+with open(input_file) as fd:
+    for line in fd.readlines():
+        line = line.rstrip()
+        line.replace("@", ",")
+        hailstone = [int(h) for h in line.split(",")]
+        hailstones.append(hailstone)
+
+
diff --git a/2023/3/one.py b/2023/3/one.py
new file mode 100644
index 0000000..e9d18ab
--- /dev/null
+++ b/2023/3/one.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+sum = 0
+for i in range(height):
+    line = lines[i]
+    pn_str = ""
+    for j in range(width):
+        c = line[j]
+        # print(19, c)
+        if c.isnumeric():
+            if not pn_str:
+                left = j
+            pn_str += c
+            # print(20, c, pn_str)
+        if pn_str and (j == width - 1 or not line[j + 1].isnumeric()):
+            print(25, pn_str)
+            adj = False
+            for ii in range(max(i - 1, 0), min(i + 1, height - 1) + 1):
+                for jj in range(max(left - 1, 0), min(j + 1, width - 1) + 1):
+                    cc = lines[ii][jj]
+                    print(ii, jj, cc)
+                    if not cc.isnumeric() and cc != ".":
+                        print("!")
+                        adj = True
+            # print(pn_str, adj)
+            if adj:
+                pn = int(pn_str)
+                sum += pn
+            pn_str = ""
+
+print(sum)
diff --git a/2023/3/two.py b/2023/3/two.py
new file mode 100644
index 0000000..69193b1
--- /dev/null
+++ b/2023/3/two.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+gears = dict()
+
+sum = 0
+for i in range(height):
+    line = lines[i]
+    pn_str = ""
+    for j in range(width):
+        c = line[j]
+        # print(19, c)
+        if c.isnumeric():
+            if not pn_str:
+                left = j
+            pn_str += c
+            # print(20, c, pn_str)
+        if pn_str and (j == width - 1 or not line[j + 1].isnumeric()):
+            for ii in range(max(i - 1, 0), min(i + 1, height - 1) + 1):
+                for jj in range(max(left - 1, 0), min(j + 1, width - 1) + 1):
+                    cc = lines[ii][jj]
+                    # print(ii, jj, cc)
+                    if cc == "*":
+                        gears.setdefault((ii, jj), list())
+                        gears[(ii, jj)].append(int(pn_str))
+            pn_str = ""
+for gear_numbers in gears.values():
+    if len(gear_numbers) != 2:
+        continue
+    gear_ratio = gear_numbers[0] * gear_numbers[1]
+    sum += gear_ratio
+
+print(sum)
diff --git a/2024/1/one.py b/2024/1/one.py
new file mode 100644
index 0000000..f8f782a
--- /dev/null
+++ b/2024/1/one.py
@@ -0,0 +1,26 @@
+
+listl = []
+listr = []
+with open("input") as lines:
+    for line in lines.readlines():
+        line = line.rstrip()
+        print(line)
+        spli = line.split(" ")
+        listl.append(int(spli[0]))
+        listr.append(int(spli[-1]))
+
+assert len(listl) == len(listr)
+
+listl.sort()
+listr.sort()
+
+dtot = 0
+
+for i in range(len(listl)):
+    l = listl[i]
+    r = listr[i]
+    d = abs(l-r)
+    dtot += d
+    print(l, r, d)
+
+print(dtot)
diff --git a/2024/1/two.py b/2024/1/two.py
new file mode 100644
index 0000000..5f3e8c3
--- /dev/null
+++ b/2024/1/two.py
@@ -0,0 +1,25 @@
+
+listl = []
+listr = []
+with open("input") as lines:
+    for line in lines.readlines():
+        line = line.rstrip()
+        print(line)
+        spli = line.split(" ")
+        listl.append(int(spli[0]))
+        listr.append(int(spli[-1]))
+
+assert len(listl) == len(listr)
+
+listl.sort()
+listr.sort()
+
+dtot = 0
+
+for i in range(len(listl)):
+    l = listl[i]
+    d = listr.count(l) * l
+    dtot += d
+    print(l, d)
+
+print(dtot)
diff --git a/2024/10/one.py b/2024/10/one.py
new file mode 100644
index 0000000..3fb0210
--- /dev/null
+++ b/2024/10/one.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+tmap: list[list[int]] = [[int(a) for a in line] for line in lines]
+
+directions = [
+    (0, 1),
+    (0, -1),
+    (1, 0),
+    (-1, 0),
+]
+
+
+def print_path(path: list[tuple[int, int]]) -> None:
+    viz = [["."] * width for _ in range(height)]
+    for c, pos in enumerate(path):
+        i, j = pos
+        viz[i][j] = str(c)
+    for line in viz:
+        print("".join(line))
+    print()
+
+
+def score(pos: tuple[int, int], path: list[tuple[int, int]]) -> set[tuple[int, int]]:
+    path = path + [pos]
+    i, j = pos
+    c = tmap[i][j]
+    if c == 9:
+        return {pos}
+    reachable = set()
+    for direction in directions:
+        ii, jj = i + direction[0], j + direction[1]
+        if ii not in range(height) or jj not in range(width):
+            continue
+        cc = tmap[ii][jj]
+        if cc != c + 1:
+            continue
+        reachable |= score((ii, jj), path)
+    return reachable
+
+
+tscore = 0
+for i in range(height):
+    for j in range(width):
+        c = tmap[i][j]
+        if c != 0:
+            continue
+        cscore = len(score((i, j), []))
+        # print(i, j, cscore)
+        tscore += cscore
+
+print(tscore)
diff --git a/2024/10/two.py b/2024/10/two.py
new file mode 100644
index 0000000..b95cbe1
--- /dev/null
+++ b/2024/10/two.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+tmap: list[list[int]] = [[int(a) for a in line] for line in lines]
+
+directions = [
+    (0, 1),
+    (0, -1),
+    (1, 0),
+    (-1, 0),
+]
+
+
+def print_path(path: list[tuple[int, int]]) -> None:
+    viz = [["."] * width for _ in range(height)]
+    for c, pos in enumerate(path):
+        i, j = pos
+        viz[i][j] = str(c)
+    for line in viz:
+        print("".join(line))
+    print()
+
+
+def score(pos: tuple[int, int], path: list[tuple[int, int]]) -> int:
+    path = path + [pos]
+    i, j = pos
+    c = tmap[i][j]
+    if c == 9:
+        # print_path(path)
+        return 1
+    cscore = 0
+    for direction in directions:
+        ii, jj = i + direction[0], j + direction[1]
+        if ii not in range(height) or jj not in range(width):
+            continue
+        cc = tmap[ii][jj]
+        if cc != c + 1:
+            continue
+        cscore += score((ii, jj), path)
+    return cscore
+
+
+tscore = 0
+for i in range(height):
+    for j in range(width):
+        c = tmap[i][j]
+        if c != 0:
+            continue
+        cscore = score((i, j), [])
+        print(i, j, cscore)
+        tscore += cscore
+    #     break
+    # break
+
+print(tscore)
diff --git a/2024/11/one.py b/2024/11/one.py
new file mode 100644
index 0000000..bbbfd0e
--- /dev/null
+++ b/2024/11/one.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+stones = [int(stone) for stone in lines[0].split()]
+
+for _ in range(25):
+    new_stones = []
+    for stone in stones:
+        stone_str = str(stone)
+        if stone == 0:
+            new_stones.append(1)
+        elif len(stone_str) % 2 == 0:
+            mid = int(len(stone_str) / 2)
+            new_stones.append(int(stone_str[:mid]))
+            new_stones.append(int(stone_str[mid:]))
+        else:
+            new_stones.append(stone * 2024)
+    stones = new_stones
+    # print(" ".join(str(stone) for stone in stones))
+
+print(len(stones))
diff --git a/2024/11/two.py b/2024/11/two.py
new file mode 100644
index 0000000..09ef476
--- /dev/null
+++ b/2024/11/two.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+
+import bisect
+import sys
+import time
+import functools
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+start = time.time()
+
+stones = [int(stone) for stone in lines[0].split()]
+
+# for i in range(75):
+#     print(i, time.time() - start, len(stones))
+#     # for s, stone in enumerate(stones):
+#     #     if stone == 0:
+#     #         stones[s] = 1
+#     #         continue
+#     #     stone_str = str(stone)
+#     #     if len(stone_str) % 2 == 0:
+#     #         mid = int(len(stone_str) / 2)
+#     #         stones[s] = int(stone_str[:mid])
+#     #         stones.insert(s, int(stone_str[mid:]))
+#     #     else:
+#     #         stones[s] *= 2024
+#     new_stones = []
+#     for stone in stones:
+#         stone_str = str(stone)
+#         if stone == 0:
+#             new_stones.append(1)
+#         elif len(stone_str) % 2 == 0:
+#             mid = int(len(stone_str) / 2)
+#             new_stones.append(int(stone_str[:mid]))
+#             new_stones.append(int(stone_str[mid:]))
+#         else:
+#             new_stones.append(stone * 2024)
+#     stones = new_stones
+
+target = int(sys.argv[2])
+
+its = [0] * len(stones)
+
+start_stones = stones.copy()
+
+
+pow10 = list()
+for i in range(25):
+    pow10.append(10**i)
+
+
+def num_digits(a: int) -> int:
+    # for i, p in enumerate(pow10):
+    #     if a < p:
+    #         # assert len(str(a)) == i
+    #         return i
+    # raise NotImplementedError
+    # return bisect.bisect(pow10, a)
+    # # nb = bisect.bisect(pow10, a)
+    num = 0
+    while a > 0:
+        num += 1
+        a //= 10
+    # assert nb == num
+    return num
+
+
+# lstones = 0
+# for e, sstone in enumerate(start_stones):
+#     print(f"47 {e}/{len(start_stones)} {time.time() - start}")
+#     stones = [sstone]
+#     while stones:
+#         stone = stones.pop(0)
+#         it = its.pop(0)
+#         lstones += 1
+#         if stone == 0:
+#             stone = 1
+#             it += 1
+#         nd = num_digits(stone)
+#         for i in range(it, target):
+#             print(stone)
+#             if nd % 2 == 0:
+#                 mid = nd // 2
+#                 left, right = divmod(stone, pow10[mid])
+#                 # left, right = divmod(stone, 10**mid)
+#                 stone = left
+#                 stones.insert(0, right)
+#                 its.insert(0, i + 1)
+#                 nd = mid
+#             else:
+#                 stone *= 2024
+#                 nd = num_digits(stone)
+#         # print(f"64 {stone}")
+
+# @functools.lru_cache(maxsize=1024)
+@functools.cache
+def proc(stone: int, target: int) -> int:
+    if target == 0:
+        return 1
+    target -= 1
+    if stone == 0:
+        return proc(1, target)
+    nd = num_digits(stone)
+    if nd % 2 == 0:
+        mid = nd // 2
+        left, right = divmod(stone, pow10[mid])
+        return proc(left, target) + proc(right, target)
+    else:
+        return proc(stone * 2024, target)
+
+
+lstones = 0
+for e, stone in enumerate(stones):
+    print(f"47 {e}/{len(stones)} {time.time() - start}")
+    lstones += proc(stone, target)
+
+print(f"{target=}")
+print(lstones)
diff --git a/2024/12/one.py b/2024/12/one.py
new file mode 100644
index 0000000..506ec1d
--- /dev/null
+++ b/2024/12/one.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+visited: set[tuple[int, int]] = set()
+
+directions = [
+    (0, 1),
+    (0, -1),
+    (1, 0),
+    (-1, 0),
+]
+
+
+def get_region(
+    pos: tuple[int, int], region: set[tuple[int, int]]
+) -> set[tuple[int, int]]:
+    region.add(pos)
+    i, j = pos
+    ochar = lines[i][j]
+    for direction in directions:
+        i, j = pos[0] + direction[0], pos[1] + direction[1]
+        if i not in range(height) or j not in range(width):
+            continue
+        if (i, j) in region:
+            continue
+        char = lines[i][j]
+        if char != ochar:
+            continue
+        region |= get_region((i, j), region)
+    return region
+
+
+def get_perimeter(region: set[tuple[int, int]]) -> int:
+    peri = 0
+    for axis in (0, 1):
+        oaxis = 0 if axis else 1
+        iss = set([pos[axis] for pos in region])
+        print(47, iss, peri)
+        for i in iss:
+            line = [pos[oaxis] for pos in region if pos[axis] == i]
+            line.sort()
+            last_j = None
+            for j in line:
+                if last_j is None:
+                    peri += 1
+                elif last_j == j - 1:
+                    pass
+                else:
+                    peri += 2
+                last_j = j
+            if last_j is not None:
+                peri += 1
+            print(62, i, peri, line)
+    return peri
+
+
+tprice = 0
+for i in range(height):
+    for j in range(width):
+        pos = i, j
+        if pos in visited:
+            continue
+        region = get_region(pos, set())
+        visited |= region
+
+        area = len(region)
+        peri = get_perimeter(region)
+        price = area * peri
+        tprice += price
+
+        char = lines[i][j]
+        print(f"{char}: {area} × {peri} = {price}$")
+
+print(tprice)
diff --git a/2024/12/reddit_test b/2024/12/reddit_test
new file mode 100644
index 0000000..eeb664d
--- /dev/null
+++ b/2024/12/reddit_test
@@ -0,0 +1,5 @@
+AAXXX
+AAXAX
+AAAAX
+AAXAX
+AAXXX
diff --git a/2024/12/two.py b/2024/12/two.py
new file mode 100644
index 0000000..ac1b48f
--- /dev/null
+++ b/2024/12/two.py
@@ -0,0 +1,136 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+visited: set[tuple[int, int]] = set()
+
+directions = [
+    (0, 1),
+    (0, -1),
+    (1, 0),
+    (-1, 0),
+]
+
+
+def get_region(
+    pos: tuple[int, int], region: set[tuple[int, int]]
+) -> set[tuple[int, int]]:
+    region.add(pos)
+    i, j = pos
+    ochar = lines[i][j]
+    for direction in directions:
+        i, j = pos[0] + direction[0], pos[1] + direction[1]
+        if i not in range(height) or j not in range(width):
+            continue
+        if (i, j) in region:
+            continue
+        char = lines[i][j]
+        if char != ochar:
+            continue
+        region |= get_region((i, j), region)
+    return region
+
+
+# def get_sides(region: set[tuple[int, int]]) -> int:
+#     peri = 0
+#     for axis in (0, 1):
+#         oaxis = 0 if axis else 1
+#         iss = set([pos[axis] for pos in region])
+#         sta: set[int] = set()
+#         sto: set[int] = set()
+#         for i in iss:
+#             line = [pos[oaxis] for pos in region if pos[axis] == i]
+#             line.sort()
+#             last_j = None
+#             for j in line:
+#                 if last_j is None:
+#                     sta.add(j)
+#                 elif last_j == j - 1:
+#                     pass
+#                 else:
+#                     sta.add(j)
+#                     sto.add(last_j)
+#                 last_j = j
+#             if last_j is not None:
+#                 sto.add(last_j)
+#         peri += len(sta) + len(sto)
+#     return peri
+
+def get_perimeter(region: set[tuple[int, int]]) -> int:
+    peri = 0
+    for axis in (0, 1):
+        oaxis = 0 if axis else 1
+        iss = set([pos[axis] for pos in region])
+        for dire in (-1, 1):
+            print(47, axis, dire, iss, peri)
+            for i in iss:
+                oi = i + dire
+                line = [pos[oaxis] for pos in region if pos[axis] == i]
+                line.sort()
+                # last_j = None
+                for j in line:
+                    if not axis:
+                        opos = oi, j
+                    else:
+                        opos = j, oi
+                    if opos in region:
+                        continue
+                    peri += 1
+    return peri
+
+
+def get_sides(region: set[tuple[int, int]]) -> int:
+    peri = 0
+    for axis in (0, 1):
+        oaxis = 0 if axis else 1
+        iss = set([pos[axis] for pos in region])
+        for dire in (-1, 1):
+            print(47, axis, dire, iss, peri)
+            for i in iss:
+                oi = i + dire
+                line = [pos[oaxis] for pos in region if pos[axis] == i]
+                line.sort()
+                last_j = None
+                for j in line:
+                    if not axis:
+                        opos = oi, j
+                    else:
+                        opos = j, oi
+                    if opos in region:
+                        last_j = None
+                        continue
+                    if last_j == j - 1:
+                        pass
+                    else:
+                        peri += 1
+
+                    last_j = j
+    return peri
+
+
+tprice = 0
+for i in range(height):
+    for j in range(width):
+        pos = i, j
+        if pos in visited:
+            continue
+        region = get_region(pos, set())
+        visited |= region
+
+        area = len(region)
+        sides = get_sides(region)
+        price = area * sides
+        tprice += price
+
+        char = lines[i][j]
+        print(f"{char}: {area} × {sides} = {price}$")
+
+print(tprice)
diff --git a/2024/13/Notes.xopp b/2024/13/Notes.xopp
new file mode 100644
index 0000000000000000000000000000000000000000..9f67c2385636f98f0c354592284fe4de63785494
GIT binary patch
literal 266872
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

literal 0
HcmV?d00001

diff --git a/2024/13/demog b/2024/13/demog
new file mode 100644
index 0000000..008e6f3
--- /dev/null
+++ b/2024/13/demog
@@ -0,0 +1,12 @@
+Button A: X+3, Y+1
+Button B: X+4, Y+2
+Prize: X=17, Y=7
+
+Button A: X+1, Y+1
+Button B: X+3, Y+3
+Prize: X=7, Y=7
+
+Button A: X+3, Y+3
+Button B: X+1, Y+1
+Prize: X=7, Y=7
+
diff --git a/2024/13/one.py b/2024/13/one.py
new file mode 100644
index 0000000..c13b92a
--- /dev/null
+++ b/2024/13/one.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+import functools
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+prizes: list[coords] = list()
+buttons: list[tuple[coords, coords]] = list()
+
+for li, line in enumerate(lines):
+    machine = li // 4
+    offset = li % 4
+    if offset == 0:
+        match = re.match(r"^Button A: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_a = int(match[1]), int(match[2])
+    elif offset == 1:
+        match = re.match(r"^Button B: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_b = int(match[1]), int(match[2])
+        buttons.append((button_a, button_b))
+    elif offset == 2:
+        match = re.match("^Prize: X=([0-9]+), Y=([0-9]+)$", line)
+        assert match
+        prize = int(match[1]), int(match[2])
+        prizes.append(prize)
+
+assert len(prizes) == len(buttons)
+
+ttoks = 0
+for arcade, prize in enumerate(prizes):
+    butts = buttons[arcade]
+    button_a, button_b = butts
+
+    @functools.lru_cache(4096)
+    def fun(x: int, y: int, rem_a: int, rem_b: int) -> int | None:
+        if (x, y) == prize:
+            return 0
+        if x > prize[0] or y > prize[1]:
+            return None
+        ba = (
+            fun(x + button_a[0], y + button_a[1], rem_a - 1, rem_b)
+            if rem_a > 0
+            else None
+        )
+        bb = (
+            fun(x + button_b[0], y + button_b[1], rem_a, rem_b - 1)
+            if rem_b > 0
+            else None
+        )
+        if ba is not None:
+            ba += 3
+        if bb is not None:
+            bb += 1
+        if ba is None:
+            if bb is None:
+                return None
+            else:
+                return bb
+        else:
+            if bb is None or ba < bb:
+                return ba
+            else:
+                return bb
+
+    toks = fun(0, 0, 100, 100)
+    print(43, arcade, toks)
+    if toks is not None:
+        ttoks += toks
+    # break
+
+print(ttoks)
diff --git a/2024/13/two.py b/2024/13/two.py
new file mode 100644
index 0000000..d8f655e
--- /dev/null
+++ b/2024/13/two.py
@@ -0,0 +1,223 @@
+#!/usr/bin/env python3
+
+import math
+import re
+import sys
+
+import rich.progress
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+prizes: list[coords] = list()
+buttons: list[tuple[coords, coords]] = list()
+
+for li, line in enumerate(lines):
+    machine = li // 4
+    offset = li % 4
+    if offset == 0:
+        match = re.match(r"^Button A: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_a = int(match[1]), int(match[2])
+    elif offset == 1:
+        match = re.match(r"^Button B: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_b = int(match[1]), int(match[2])
+        buttons.append((button_a, button_b))
+    elif offset == 2:
+        match = re.match("^Prize: X=([0-9]+), Y=([0-9]+)$", line)
+        assert match
+        prize = int(match[1]), int(match[2])
+        prize = prize[0] + 10000000000000, prize[1] + 10000000000000
+        prizes.append(prize)
+
+assert len(prizes) == len(buttons)
+
+
+def slope(point: coords) -> float:
+    return point[1] / point[0]
+
+
+def norm(point: coords) -> float:
+    return math.sqrt(math.pow(point[1], 2) + math.pow(point[0], 2))
+
+
+#
+# def in_range(p: coords, a: coords, b: coords) -> bool:
+#     slope_a = slope(button_a)
+#     slope_b = slope(button_b)
+#     slope_p = slope(p)
+#     slope_but_min = min(slope_a, slope_b)
+#     slope_but_max = max(slope_a, slope_b)
+#     return not (slope_p < slope_but_min or slope_p > slope_but_max)
+
+
+ttoks = 0
+token_a, token_b = 3, 1
+for arcade, prize in enumerate(prizes):
+    butts = buttons[arcade]
+    button_a, button_b = butts
+
+    print(43, prize, button_a, button_b)
+    toks = None
+
+    max_a_x = int(math.ceil(prize[0] / button_a[0]))
+    max_a_y = int(math.ceil(prize[1] / button_a[1]))
+    max_a = min(max_a_x, max_a_y)
+    max_b_x = int(math.ceil(prize[0] / button_b[0]))
+    max_b_y = int(math.ceil(prize[1] / button_b[1]))
+    max_b = min(max_b_x, max_b_y)
+
+    slope_a = slope(button_a)
+    slope_b = slope(button_b)
+    slope_prize = slope(prize)
+    slope_but_min = min(slope_a, slope_b)
+    slope_but_max = max(slope_a, slope_b)
+    print(57, slope_but_min, slope_prize, slope_but_max)
+    if slope_prize < slope_but_min or slope_prize > slope_but_max:
+        print("Not in range")
+        continue
+
+    norm_a = norm(button_a)
+    norm_b = norm(button_b)
+    speed_a = norm_a / 3
+    speed_b = norm_b / 1
+
+    if speed_a > speed_b:
+        button_fastest, button_slowest = button_a, button_b
+        token_fastest, token_slowest = token_a, token_b
+        max_fastest, max_slowest = max_a, max_b
+        # slope_fastest, slope_slowes = slope_a, slope_b
+        # norm_fastest, norm_slowest = norm_a, norm_b
+    else:
+        button_fastest, button_slowest = button_b, button_a
+        token_fastest, token_slowest = token_b, token_a
+        max_fastest, max_slowest = max_b, max_a
+        # slope_fastest, slope_slowes = slope_b, slope_a
+        # norm_fastest, norm_slowest = norm_b, norm_a
+    toks = 0
+
+    # pri_x, pri_y = prize
+    # slope_pri = slope((pri_x, pri_y))
+    # while slope_pri >= slope_but_min and slope_pri <= slope_but_max:
+    #     toks += token_fastest
+    #     pri_x -= button_fastest[0]
+    #     pri_y -= button_fastest[1]
+    #     slope_pri = slope((pri_x, pri_y))
+    #     # print(98, pri_x, pri_y, slope_pri, toks)
+    # pri_x += button_fastest[0]
+    # pri_y += button_fastest[1]
+    # toks -= token_fastest
+    # print(100, token_fastest, toks / token_fastest, toks)
+
+    min_presses_fastest = 0
+    max_presses_fastest = max_fastest
+    while min_presses_fastest + 1 < max_presses_fastest:
+        presses_fastest = int(
+            math.floor((min_presses_fastest + max_presses_fastest) / 2)
+        )
+        print(120, min_presses_fastest, max_presses_fastest, presses_fastest)
+        pri_x, pri_y = (
+            prize[0] - button_fastest[0] * presses_fastest,
+            prize[1] - button_fastest[1] * presses_fastest,
+        )
+        slope_pri = slope((pri_x, pri_y))
+        if slope_pri >= slope_but_min and slope_pri <= slope_but_max:
+            min_presses_fastest = presses_fastest
+        else:
+            max_presses_fastest = presses_fastest
+
+    presses_fastest = max_presses_fastest
+    pri_x, pri_y = (
+        prize[0] - button_fastest[0] * presses_fastest,
+        prize[1] - button_fastest[1] * presses_fastest,
+    )
+    pri_x += button_fastest[0]
+    pri_y += button_fastest[1]
+    toks = presses_fastest * token_fastest
+    toks -= token_fastest
+
+    print(101, token_fastest, toks / token_fastest, toks)
+
+    # while pri_x > 0 and pri_y > 0:
+    #     toks += token_slowest
+    #     pri_x -= button_slowest[0]
+    #     pri_y -= button_slowest[1]
+    # print(103, token_slowest, toks)
+    # if (pri_x, pri_y) != (0, 0):
+    #     toks = None
+
+    presses_slowest, remainder = divmod(pri_x, button_slowest[0])
+    if remainder == 0 and (pri_y == presses_slowest * button_slowest[1]):
+        toks += presses_slowest * token_slowest
+    else:
+        toks = None
+    # dist = norm((pri_x, pri_y))
+    # rem_presses, remainder = divmod(dist, norm_slowest)
+    # presses_slowest = dist / norm_slowest
+    # if remainder == 0:
+    #     toks += rem_presses * token_slowest
+    # else:
+    #     toks = None
+
+    #
+    # with rich.progress.Progress() as progress:
+    #     nb_a = max_a
+    #     nb_b = 0
+    #     task_a = progress.add_task("Button A", total=max_a)
+    #     task_b = progress.add_task("Button B", total=max_b)
+    #     x = nb_a * button_a[0] + nb_b * button_b[0]
+    #     while nb_a > 0 or x < prize[0]:
+    #         # print(54, nb_a, nb_b)
+    #         if x == prize[0]:
+    #             y = nb_a * button_a[1] + nb_b * button_b[1]
+    #             if y == prize[1]:
+    #                 tok = 3 * nb_a + 1 * nb_b
+    #                 if toks is None or tok < toks:
+    #                     toks = tok
+    #         if x >= prize[0]:
+    #             # print(67)
+    #             nb_a -= 1
+    #             # progress.update(task_a, advance=1)
+    #         elif x < prize[0]:
+    #             nb_b += 1
+    #             # print(71)
+    #             # progress.update(task_b, advance=1)
+    #             if nb_b > max_b:
+    #                 break
+    #         x = nb_a * button_a[0] + nb_b * button_b[0]
+
+    # @functools.lru_cache(4096)
+    # def fun(x: int, y: int) -> int | None:
+    #     if (x, y) == prize:
+    #         return 0
+    #     if x > prize[0] or y > prize[1]:
+    #         return None
+    #     ba = fun(x + button_a[0], y + button_a[1])
+    #     bb = fun(x + button_b[0], y + button_b[1])
+    #     if ba is not None:
+    #         ba += 3
+    #     if bb is not None:
+    #         bb += 1
+    #     if ba is None:
+    #         if bb is None:
+    #             return None
+    #         else:
+    #             return bb
+    #     else:
+    #         if bb is None or ba < bb:
+    #             return ba
+    #         else:
+    #             return bb
+    #
+    # toks = fun(0, 0)
+
+    print(43, arcade, toks)
+    if toks is not None:
+        ttoks += toks
+    # break
+
+print(ttoks)
diff --git a/2024/13/two_clean.py b/2024/13/two_clean.py
new file mode 100644
index 0000000..8a719c3
--- /dev/null
+++ b/2024/13/two_clean.py
@@ -0,0 +1,123 @@
+#!/usr/bin/env python3
+
+import math
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+prizes: list[coords] = list()
+buttons: list[tuple[coords, coords]] = list()
+
+for li, line in enumerate(lines):
+    machine = li // 4
+    offset = li % 4
+    if offset == 0:
+        match = re.match(r"^Button A: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_a = int(match[1]), int(match[2])
+    elif offset == 1:
+        match = re.match(r"^Button B: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_b = int(match[1]), int(match[2])
+        buttons.append((button_a, button_b))
+    elif offset == 2:
+        match = re.match("^Prize: X=([0-9]+), Y=([0-9]+)$", line)
+        assert match
+        prize = int(match[1]), int(match[2])
+        # prize = prize[0] + 10000000000000, prize[1] + 10000000000000
+        prizes.append(prize)
+
+assert len(prizes) == len(buttons)
+
+
+def slope(point: coords) -> float:
+    return point[1] / point[0]
+
+
+def norm(point: coords) -> float:
+    return math.sqrt(math.pow(point[1], 2) + math.pow(point[0], 2))
+
+
+ttoks = 0
+token_a, token_b = 3, 1
+for arcade, prize in enumerate(prizes):
+    butts = buttons[arcade]
+    button_a, button_b = butts
+
+    print(43, prize, button_a, button_b)
+    toks = None
+
+    max_a_x = int(math.ceil(prize[0] / button_a[0]))
+    max_a_y = int(math.ceil(prize[1] / button_a[1]))
+    max_a = min(max_a_x, max_a_y)
+    max_b_x = int(math.ceil(prize[0] / button_b[0]))
+    max_b_y = int(math.ceil(prize[1] / button_b[1]))
+    max_b = min(max_b_x, max_b_y)
+
+    slope_a = slope(button_a)
+    slope_b = slope(button_b)
+    slope_prize = slope(prize)
+    slope_but_min = min(slope_a, slope_b)
+    slope_but_max = max(slope_a, slope_b)
+    if slope_prize < slope_but_min or slope_prize > slope_but_max:
+        print("Not in range")
+        continue
+
+    norm_a = norm(button_a)
+    norm_b = norm(button_b)
+    speed_a = norm_a / 3
+    speed_b = norm_b / 1
+
+    if speed_a > speed_b:
+        button_fastest, button_slowest = button_a, button_b
+        token_fastest, token_slowest = token_a, token_b
+        max_fastest = max_a
+    else:
+        button_fastest, button_slowest = button_b, button_a
+        token_fastest, token_slowest = token_b, token_a
+        max_fastest = max_b
+    toks = 0
+
+    min_presses_fastest = 0
+    max_presses_fastest = max_fastest
+    while min_presses_fastest + 1 < max_presses_fastest:
+        presses_fastest = int(
+            math.floor((min_presses_fastest + max_presses_fastest) / 2)
+        )
+        pri_x, pri_y = (
+            prize[0] - button_fastest[0] * presses_fastest,
+            prize[1] - button_fastest[1] * presses_fastest,
+        )
+        slope_pri = slope((pri_x, pri_y))
+        if slope_pri >= slope_but_min and slope_pri <= slope_but_max:
+            min_presses_fastest = presses_fastest
+        else:
+            max_presses_fastest = presses_fastest
+
+    presses_fastest = max_presses_fastest
+    pri_x, pri_y = (
+        prize[0] - button_fastest[0] * presses_fastest,
+        prize[1] - button_fastest[1] * presses_fastest,
+    )
+    pri_x += button_fastest[0]
+    pri_y += button_fastest[1]
+    toks = presses_fastest * token_fastest
+    toks -= token_fastest
+
+
+    presses_slowest, remainder = divmod(pri_x, button_slowest[0])
+    if remainder == 0 and (pri_y == presses_slowest * button_slowest[1]):
+        toks += presses_slowest * token_slowest
+    else:
+        toks = None
+
+    print(76, toks)
+    if toks is not None:
+        ttoks += toks
+
+print(ttoks)
diff --git a/2024/13/two_reddit.py b/2024/13/two_reddit.py
new file mode 100644
index 0000000..b44f0e6
--- /dev/null
+++ b/2024/13/two_reddit.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+"""
+Implementing:
+https://www.reddit.com/r/adventofcode/comments/1hd7irq/2024_day_13_an_explanation_of_the_mathematics/
+"""
+
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+prizes: list[coords] = list()
+buttons: list[tuple[coords, coords]] = list()
+
+for li, line in enumerate(lines):
+    machine = li // 4
+    offset = li % 4
+    if offset == 0:
+        match = re.match(r"^Button A: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_a = int(match[1]), int(match[2])
+    elif offset == 1:
+        match = re.match(r"^Button B: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_b = int(match[1]), int(match[2])
+        buttons.append((button_a, button_b))
+    elif offset == 2:
+        match = re.match("^Prize: X=([0-9]+), Y=([0-9]+)$", line)
+        assert match
+        prize = int(match[1]), int(match[2])
+        # prize = prize[0] + 10000000000000, prize[1] + 10000000000000
+        prizes.append(prize)
+
+assert len(prizes) == len(buttons)
+
+ttoks = 0
+token_a, token_b = 3, 1
+for arcade, prize in enumerate(prizes):
+    butts = buttons[arcade]
+    button_a, button_b = butts
+
+    print(43, prize, button_a, button_b)
+    p_x, p_y = prize
+    a_x, a_y = button_a
+    b_x, b_y = button_b
+
+    denom = a_x * b_y - a_y * b_x
+    a = (p_x * b_y - p_y * b_x) / denom
+    b = (a_x * p_y - a_y * p_x) / denom
+
+    if not a.is_integer() or not b.is_integer():
+        print(76, None)
+        continue
+
+    toks = int(a) * token_a + int(b) * token_b
+    print(76, toks)
+    ttoks += toks
+
+print(ttoks)
diff --git a/2024/13/two_simpy.py b/2024/13/two_simpy.py
new file mode 100644
index 0000000..cbce3d6
--- /dev/null
+++ b/2024/13/two_simpy.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python3
+
+"""
+Someone mentionned sympy on reddit, wanted to see what I could do with it.
+"""
+
+import re
+import sys
+
+import sympy
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+prizes: list[coords] = list()
+buttons: list[tuple[coords, coords]] = list()
+
+for li, line in enumerate(lines):
+    machine = li // 4
+    offset = li % 4
+    if offset == 0:
+        match = re.match(r"^Button A: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_a = int(match[1]), int(match[2])
+    elif offset == 1:
+        match = re.match(r"^Button B: X\+([0-9]+), Y\+([0-9]+)$", line)
+        assert match
+        button_b = int(match[1]), int(match[2])
+        buttons.append((button_a, button_b))
+    elif offset == 2:
+        match = re.match("^Prize: X=([0-9]+), Y=([0-9]+)$", line)
+        assert match
+        prize = int(match[1]), int(match[2])
+        # prize = prize[0] + 10000000000000, prize[1] + 10000000000000
+        prizes.append(prize)
+
+assert len(prizes) == len(buttons)
+
+sympy.init_printing()
+
+a, b, Ax, Ay, Bx, By, Px, Py = sympy.symbols(
+    "a b Ax Ay Bx By Px Py", positive=True, integer=True
+)
+x_eq = sympy.Eq(a * Ax + b * Bx, Px)
+y_eq = sympy.Eq(a * Ay + b * By, Py)
+tokens = 3 * a + 1 * b
+sols = sympy.solve([x_eq, y_eq], a, b, dict=True)
+# In that case, should use linsolve directly (solve ain't great)
+# Would allow to .subs the whole solution set at once.
+
+ttoks = sympy.Integer(0)
+for arcade, prize in enumerate(prizes):
+    button_a, button_b = buttons[arcade]
+
+    print(43, prize, button_a, button_b)
+
+    vars = {
+        Ax: button_a[0],
+        Ay: button_a[1],
+        Bx: button_b[0],
+        By: button_b[1],
+        Px: prize[0],
+        Py: prize[1],
+    }
+    toks = None
+    for sol in sols:
+        a_presses, b_presses = sol[a].subs(vars), sol[b].subs(vars)
+        if not a_presses.is_integer or not b_presses.is_integer:
+            continue
+        ntoks = tokens.subs({a: a_presses, b: b_presses})
+        if toks is None or ntoks < toks:
+            toks = ntoks
+
+    print(76, toks)
+    if toks is not None:
+        ttoks += toks
+
+assert ttoks.is_integer
+print(int(ttoks.evalf()))
diff --git a/2024/14/one.py b/2024/14/one.py
new file mode 100644
index 0000000..fc1c0f9
--- /dev/null
+++ b/2024/14/one.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python3
+
+
+import functools
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+vec = tuple[int, int]
+poss: list[vec] = list()
+vits: list[vec] = list()
+
+for line in lines:
+    match = re.findall(r"(-?\d+)", line)
+    assert match
+    pos = int(match[0]), int(match[1])
+    vit = int(match[2]), int(match[3])
+    poss.append(pos)
+    vits.append(vit)
+
+print(poss, vits)
+
+
+def print_poss(poss: list[vec]) -> None:
+    viz = [[0] * width for _ in range(height)]
+    for pos in poss:
+        px, py = pos
+        viz[py][px] += 1
+    for line in viz:
+        print("".join([(str(c) if c > 0 else ".") for c in line]))
+    print()
+
+
+# x→ y↓
+if input_file == "input":
+    width = 101
+    height = 103
+else:
+    width = 11
+    height = 7
+if input_file == "demo1":
+    secs = 5
+else:
+    secs = 100
+
+print_poss(poss)
+
+for s in range(secs):
+    for r, vit in enumerate(vits):
+        px, py = poss[r]
+        px += vit[0]
+        py += vit[1]
+        while px >= width:
+            px -= width
+        while py >= height:
+            py -= height
+        while px < 0:
+            px += width
+        while py < 0:
+            py += height
+        poss[r] = px, py
+    print(s)
+    print_poss(poss)
+
+
+half_width = width // 2
+half_height = height // 2
+# <<<<<|>>>>>
+# <= first quadrant
+
+quadrants = [0, 0, 0, 0]
+for pos in poss:
+    px, py = pos
+    q = 0
+    if px == half_width or py == half_height:
+        continue
+    if px > half_width:
+        q += 1
+    if py > half_height:
+        q += 2
+    quadrants[q] += 1
+
+print(quadrants)
+print(functools.reduce(int.__mul__, quadrants))
diff --git a/2024/14/two.py b/2024/14/two.py
new file mode 100644
index 0000000..360ded0
--- /dev/null
+++ b/2024/14/two.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python3
+
+
+import functools
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+vec = tuple[int, int]
+poss: list[vec] = list()
+vits: list[vec] = list()
+
+for line in lines:
+    match = re.findall(r"(-?\d+)", line)
+    assert match
+    pos = int(match[0]), int(match[1])
+    vit = int(match[2]), int(match[3])
+    poss.append(pos)
+    vits.append(vit)
+
+print(poss, vits)
+
+
+def print_poss(poss: list[vec]) -> None:
+    stop = True
+    viz = [[0] * width for _ in range(height)]
+    for pos in poss:
+        px, py = pos
+        if viz[py][px] > 0:
+            stop = False
+        viz[py][px] += 1
+    if stop:
+        for line in viz:
+            print("".join([(str(c) if c > 0 else ".") for c in line]))
+        input()
+
+
+# x→ y↓
+if input_file == "input":
+    width = 101
+    height = 103
+else:
+    width = 11
+    height = 7
+if input_file == "demo1":
+    secs = 5
+else:
+    secs = 100
+
+print_poss(poss)
+
+# for s in range(secs):
+s = 0
+while True:
+    s += 1
+    for r, vit in enumerate(vits):
+        px, py = poss[r]
+        px += vit[0]
+        py += vit[1]
+        while px >= width:
+            px -= width
+        while py >= height:
+            py -= height
+        while px < 0:
+            px += width
+        while py < 0:
+            py += height
+        poss[r] = px, py
+    print(s)
+    print_poss(poss)
+#
+#
+# half_width = width // 2
+# half_height = height // 2
+# # <<<<<|>>>>>
+# # <= first quadrant
+#
+# quadrants = [0, 0, 0, 0]
+# for pos in poss:
+#     px, py = pos
+#     q = 0
+#     if px == half_width or py == half_height:
+#         continue
+#     if px > half_width:
+#         q += 1
+#     if py > half_height:
+#         q += 2
+#     quadrants[q] += 1
+#
+# print(quadrants)
+# print(functools.reduce(int.__mul__, quadrants))
diff --git a/2024/14/two_extra.py b/2024/14/two_extra.py
new file mode 100644
index 0000000..75f7e7f
--- /dev/null
+++ b/2024/14/two_extra.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python3
+
+
+import functools
+import re
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+vec = tuple[int, int]
+poss: list[vec] = list()
+vits: list[vec] = list()
+
+for line in lines:
+    match = re.findall(r"(-?\d+)", line)
+    assert match
+    pos = int(match[0]), int(match[1])
+    vit = int(match[2]), int(match[3])
+    poss.append(pos)
+    vits.append(vit)
+
+print(poss, vits)
+
+
+def print_poss(poss: list[vec]) -> None:
+    stop = False
+    viz = [[0] * width for _ in range(height)]
+    for pos in poss:
+        px, py = pos
+        viz[py][px] += 1
+    for line in viz:
+        lin = "".join([(str(c) if c > 0 else ".") for c in line])
+        print(lin)
+        if "111111111" in lin:
+            stop = True
+    if stop:
+        input()
+
+
+# x→ y↓
+if input_file.startswith("input"):
+    width = 101
+    height = 103
+else:
+    width = 11
+    height = 7
+if input_file == "demo1":
+    secs = 5
+else:
+    secs = 100
+
+print_poss(poss)
+
+# for s in range(secs):
+s = 0
+while True:
+    s += 1
+    for r, vit in enumerate(vits):
+        px, py = poss[r]
+        px += vit[0]
+        py += vit[1]
+        while px >= width:
+            px -= width
+        while py >= height:
+            py -= height
+        while px < 0:
+            px += width
+        while py < 0:
+            py += height
+        poss[r] = px, py
+    print(s)
+    print_poss(poss)
+#
+#
+# half_width = width // 2
+# half_height = height // 2
+# # <<<<<|>>>>>
+# # <= first quadrant
+#
+# quadrants = [0, 0, 0, 0]
+# for pos in poss:
+#     px, py = pos
+#     q = 0
+#     if px == half_width or py == half_height:
+#         continue
+#     if px > half_width:
+#         q += 1
+#     if py > half_height:
+#         q += 2
+#     quadrants[q] += 1
+#
+# print(quadrants)
+# print(functools.reduce(int.__mul__, quadrants))
diff --git a/2024/15/demog b/2024/15/demog
new file mode 100644
index 0000000..6493017
--- /dev/null
+++ b/2024/15/demog
@@ -0,0 +1,6 @@
+#######
+#...O..
+#......
+#...@..
+
+>
diff --git a/2024/15/one.py b/2024/15/one.py
new file mode 100644
index 0000000..334e3ed
--- /dev/null
+++ b/2024/15/one.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+coords = tuple[int, int]
+
+pos: coords
+box = list()
+moves: list[coords] = list()
+
+directions = {
+    "^": (-1, 0),  # ^
+    ">": (0, 1),  # >
+    "v": (1, 0),  # v
+    "<": (0, -1),  # <
+}
+
+boxing = True
+for i, line in enumerate(lines):
+    if not line:
+        boxing = False
+    elif boxing:
+        bline = list(line)
+        if "@" in bline:
+            j = bline.index("@")
+            pos = i, j
+            # bline[j] = "."
+        box.append(bline)
+    else:
+        for c in line:
+            direction = directions[c]
+            moves.append(direction)
+
+
+def print_box() -> None:
+    for bline in box:
+        print("".join(bline))
+    print()
+
+
+print_box()
+for move in moves:
+    first = pos[0] + move[0], pos[1] + move[1]
+    last = first
+    possible = True
+    while True:
+        c = box[last[0]][last[1]]
+        # print(c)
+        if c == ".":
+            break
+        elif c == "#":
+            possible = False
+            break
+        last = last[0] + move[0], last[1] + move[1]
+    if possible:
+        if first != last:
+            box[last[0]][last[1]] = "O"
+        box[pos[0]][pos[1]] = "."
+        box[first[0]][first[1]] = "@"
+        pos = first
+    print(move, possible, pos, first, last)
+    print_box()
+
+
+score = 0
+for i, bline in enumerate(box):
+    for j, char in enumerate(bline):
+        if char == "O":
+            score += 100 * i + j
+print(score)
diff --git a/2024/15/two.py b/2024/15/two.py
new file mode 100644
index 0000000..4c8c001
--- /dev/null
+++ b/2024/15/two.py
@@ -0,0 +1,110 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+vec = tuple[int, int]
+
+pos: vec
+box = list()
+moves: list[vec] = list()
+
+directions = {
+    "^": (-1, 0),  # ^
+    ">": (0, 1),  # >
+    "v": (1, 0),  # v
+    "<": (0, -1),  # <
+}
+
+sub = {
+    "#": "##",
+    "O": "[]",
+    ".": "..",
+    "@": "@.",
+}
+
+boxing = True
+for i, line in enumerate(lines):
+    if not line:
+        boxing = False
+    elif boxing:
+        bline = list()
+        for char in line:
+            bline += list(sub[char])
+        if "@" in bline:
+            j = bline.index("@")
+            pos = i, j
+            # bline[j] = "."
+        box.append(bline)
+    else:
+        for c in line:
+            direction = directions[c]
+            moves.append(direction)
+
+
+def print_box() -> None:
+    for bline in box:
+        print("".join(bline))
+    print()
+
+
+print_box()
+for move in moves:
+
+    def do(i: int, j: int) -> None | set[vec]:
+        ii, jj = i + move[0], j + move[1]
+        char = box[ii][jj]
+        moving = {(i, j)}
+        if char == "#":
+            return None
+        elif char == ".":
+            return moving
+        else:
+            r = do(ii, jj)
+            if r is None:
+                return None
+            moving |= r
+            if char == "[":
+                npos = (ii, jj + 1)
+                if npos not in moving:
+                    r = do(npos[0], npos[1])
+                    if r is None:
+                        return None
+                    moving |= r
+            elif char == "]":
+                npos = (ii, jj - 1)
+                if npos not in moving:
+                    r = do(npos[0], npos[1])
+                    if r is None:
+                        return None
+                    moving |= r
+            return moving
+
+    moving = do(pos[0], pos[1])
+    if moving is None:
+        continue
+    olc: list[str] = list()
+    for i, j in moving:
+        olc.append(box[i][j])
+        box[i][j] = "."
+    print(82, moving)
+    print(83, olc)
+    for i, j in moving:
+        ii, jj = i + move[0], j + move[1]
+        box[ii][jj] = olc.pop(0)
+    # box[pos[0]][pos[1]] = "."
+    pos = pos[0] + move[0], pos[1] + move[1]
+    print(move, pos)
+    # print_box()
+
+
+score = 0
+for i, bline in enumerate(box):
+    for j, char in enumerate(bline):
+        if char == "[":
+            score += 100 * i + j
+print(score)
diff --git a/2024/16/:w b/2024/16/:w
new file mode 100644
index 0000000..5494d1e
--- /dev/null
+++ b/2024/16/:w
@@ -0,0 +1,4 @@
+####
+#.E#
+#S##
+####
diff --git a/2024/16/README.md b/2024/16/README.md
new file mode 100644
index 0000000..ba6d8f6
--- /dev/null
+++ b/2024/16/README.md
@@ -0,0 +1,23 @@
+Oh boy. My first time in a while doing something with mazes.
+I decided to go with a filling thing.
+I realized I need to put the direction as a dimension in the table of visited scores.
+So basically it would go up to the very last tile, and then be like "op, what if I went back to the start?", although I did not know that at the time.
+I did exhaust Python call stack, so I increased it, again and again.
+But I thought that surely, even with this dumb of an algorithm it should be able to do, so I decided to look for a bug.
+I used the depth variable (initally only used to indent print statements) as my own call stack limit that would still print the maze.
+I realized that even at 1000 depth, the maze was already filled, which puzzled me.
+I submitted the answer... and it was correct x)
+
+For part 2 I first implemented something that would print only one best path.
+Then I realized my mistake, and then did something that would work if not for the fact that I optimized out
+2 paths arriving with the same score. A <= changed to < later and it was fixed.
+The optimisation didn't cost much, the "allocating a list every recursion", very much so.
+
+Since it was taking a long time to compute I realized maybe I could do something clever with only considering crossways,
+since there's quite a lot of corridors.
+But I decided to instead firsrt code two2.py, which would add the position to the set of best places only when the recursion hit the best score,
+which was hardcoded from part 1 (it took 48s to run alone, sooo).
+I tried it on demo, got None as answer to part 1 and 0 as answer to part 2, completly overlooked that, and let it cook on the real input.
+In the end, the first iteration of two.py ended up being cooked first, 11 minutes after, with the right answer.
+
+...a win is a win I guess
diff --git a/2024/16/demog b/2024/16/demog
new file mode 100644
index 0000000..7aed542
--- /dev/null
+++ b/2024/16/demog
@@ -0,0 +1,15 @@
+################
+############..E#
+###########..#.#
+##########..##.#
+#########..###.#
+########..##...#
+#######..###.###
+######..####...#
+#####..#######.#
+####..##.......#
+###..###.#######
+##..####.......#
+#..###########.#
+#S.............#
+################
diff --git a/2024/16/demog0 b/2024/16/demog0
new file mode 100644
index 0000000..2f01db5
--- /dev/null
+++ b/2024/16/demog0
@@ -0,0 +1,4 @@
+####
+#.E#
+#S.#
+####
diff --git a/2024/16/networkx_test.py b/2024/16/networkx_test.py
new file mode 100644
index 0000000..6e8151e
--- /dev/null
+++ b/2024/16/networkx_test.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+
+import sys
+import typing
+
+import matplotlib.pyplot as plt
+import networkx as nx
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+# Parse input
+g = nx.DiGraph()
+for i in range(height):
+    for j in range(width):
+        char = lines[i][j]
+        if char == "#":
+            continue
+        for d, direction in enumerate(directions):
+            cur = (i, j, d)
+            # Start/end
+            if char == "E":
+                g.add_edge(cur, "end", weight=0)
+            elif char == "S" and d == 1:
+                g.add_edge("start", cur, weight=0)
+            # Rotate
+            g.add_edge(cur, (i, j, (d + 1) % len(directions)), weight=1000)
+            g.add_edge(cur, (i, j, (d - 1) % len(directions)), weight=1000)
+            # Advance
+            ii, jj = i + direction[0], j + direction[1]
+            if lines[ii][jj] == "#":
+                continue
+            g.add_edge(cur, (ii, jj, d), weight=1)
+
+# Part 1
+score = nx.shortest_path_length(g, "start", "end", weight="weight")
+print(f"{score=}")
+
+# Part 2
+paths = nx.all_shortest_paths(g, "start", "end", weight="weight")
+best_orientations = set()
+for path in paths:
+    best_orientations |= set(path)
+path_edges = list(zip(path, path[1:]))  # Will be one random best path
+best_places = set(bo[:2] for bo in best_orientations - {"start", "end"})
+print(f"{len(best_places)=}")
+
+# Draw graph
+if len(g.nodes) > 1000:
+    sys.exit(0)
+
+node_colors = ["blue" if node in best_orientations else "cyan" for node in g.nodes()]
+edge_colors = ["red" if edge in path_edges else "black" for edge in g.edges()]
+node_pos: dict[typing.Any, tuple[float, float]] = dict()
+for node in g.nodes():
+    pos: tuple[float, float]
+    if node == "start":
+        pos = height - 1, 0
+    elif node == "end":
+        pos = 0, width - 1
+    else:
+        i, j, d = node
+        direction = directions[d]
+        pos = i + direction[0] / 3, j + direction[1] / 3
+    node_pos[node] = pos[1], pos[0] * -1
+
+nx.draw_networkx_nodes(g, node_pos, node_color=node_colors)
+nx.draw_networkx_edges(g, node_pos, edge_color=edge_colors)
+# nx.draw_networkx_labels(g, node_pos)
+# nx.draw_networkx_edge_labels(
+#     g, node_pos, edge_labels={(u, v): d["weight"] for u, v, d in g.edges(data=True)}
+# )
+
+plt.show()
diff --git a/2024/16/numpy_test.py b/2024/16/numpy_test.py
new file mode 100644
index 0000000..0b723fd
--- /dev/null
+++ b/2024/16/numpy_test.py
@@ -0,0 +1,135 @@
+#!/usr/bin/env python3
+
+import sys
+
+import numpy as np
+import scipy as sp
+
+dtype = np.int32
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+start = height - 2, 1
+stop = 1, width - 2
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+directions_keys = ("^", ">", "v", "<")
+
+walls = np.zeros((height, width), dtype)
+for i in range(height):
+    for j in range(width):
+        if lines[i][j] == "#":
+            walls[i, j] = 1
+invwalls = 1 - walls
+
+# print("Walls")
+# print(walls)
+
+# TEST 4
+
+scores = np.zeros((height, width, len(directions)), dtype)
+scores[start[0], start[1], 1] = 1
+
+for i in range(1000):
+    print("Step", i)
+    oldscores = scores.copy()
+    for od, odir in enumerate(directions):
+        for nd, ndir in enumerate(directions):
+            score = scores[:, :, nd]
+            moved = sp.ndimage.shift(oldscores[:, :, od], ndir)
+            increment = 1 if nd == od else 1001
+            moved = (moved + increment) * (moved > 0)
+            moved = moved * invwalls
+            mask = (moved > 0) & ((score == 0) | (score > moved))
+            scores[:, :, nd] = (score * ~mask) + (moved * mask)
+
+    # for d, dir in enumerate(directions):
+    #     print("Direction", directions_keys[d])
+    #     print(scores[:, :, d])
+
+    if (scores == oldscores).all():
+        break
+else:
+    print("Limit!")
+
+end_score = min(filter(lambda d: d > 0, scores[stop])) - 1
+print(f"{end_score=}")
+
+# TEST 3
+
+# scores = [np.zeros((height, width), dtype) for _ in directions]
+# scores[1][start] = 1
+#
+# for i in range(100):
+#     print("Step", i)
+#     for od, odir in enumerate(directions):
+#         oldscore = scores[od].copy()
+#         for nd, ndir in enumerate(directions):
+#             score = scores[nd]
+#             moved = sp.ndimage.shift(oldscore, ndir)
+#             increment = 1 if nd == od else 1001
+#             moved = (moved + increment) * (moved > 0)
+#             moved = moved * invwalls
+#             mask = (moved > 0) & ((score == 0) | (score > moved))
+#             scores[nd] = (score * ~mask) + (moved * mask)
+#
+#     final_score = None
+#     for d, dir in enumerate(directions):
+#         print("Direction", directions_keys[d])
+#         print(scores[d])
+#         end_score = scores[d][stop]
+#         if end_score > 0:
+#             if final_score is None or end_score < final_score:
+#                 final_score = end_score
+#
+#     if final_score:
+#         final_score -= 1
+#         print(f"{final_score=}")
+#         break
+# else:
+#     print("Limit!")
+
+
+# TEST 2
+
+# score = np.zeros((height, width), dtype)
+# score[start] = 1
+#
+# for i in range(10):
+#     print("Step", i)
+#     oldscore = score.copy()
+#     for nd, ndir in enumerate(directions):
+#         moved = sp.ndimage.shift(oldscore, ndir)
+#         moved = (moved + 1) * (moved > 0)
+#         moved = moved * invwalls
+#         mask = (moved > 0) & ((score == 0) | (score > moved))
+#         score = (score * ~mask) + (moved * mask)
+#     print(score)
+
+# TEST 1
+
+# directions = np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]], dtype)
+#
+# visited = np.zeros((height, width), dtype)
+# visited[start] = 1
+#
+# for i in range(1000):
+#     print("Step", i)
+#     new = sp.signal.convolve2d(visited, directions, mode="same")
+#     visited = (((new > 0) - walls) > 0)
+#     print(visited * 1)
+#     if visited[stop]:
+#         break
+# else:
+#     print("Limit!")
+# print(i)
diff --git a/2024/16/one.py b/2024/16/one.py
new file mode 100644
index 0000000..de41b0b
--- /dev/null
+++ b/2024/16/one.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+
+import pprint
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+directions_keys = ("^", ">", "v", "<")
+
+min_scores: list[list[list[None | int]]] = list()
+for _ in range(height):
+    line: list[list[None | int]] = list()
+    for _ in range(width):
+        cell: list[None | int] = [None] * len(directions)
+        line.append(cell)
+    min_scores.append(line)
+
+start = height - 2, 1
+
+
+def walk(pos: vec, dir: int, score: int, depth: int = 0) -> int | None:
+    i, j = pos
+    char = lines[i][j]
+
+    if depth > 1000:
+        return None
+
+    # print("-" * depth, 28, pos, char, directions_keys[dir], score)
+    if char == "E":
+        return score
+    elif char == "#":
+        return None
+
+    min_score = min_scores[i][j][dir]
+    if min_score is not None and score >= min_score:
+        # print("-" * depth, f" 32 already taken {score} >= {min_score}")
+        return None
+    min_scores[i][j][dir] = score
+
+    mscore = None
+    for ndir, direction in enumerate(directions):
+        ii, jj = i + direction[0], j + direction[1]
+        price = 1 if dir == ndir else 1001
+        nscore = walk((ii, jj), ndir, score + price, depth+1)
+        if nscore is None:
+            continue
+        if mscore is None or nscore < mscore:
+            mscore = nscore
+    return mscore
+
+sys.setrecursionlimit(9000)
+tot_score = walk(start, 1, 0)
+
+# Viz
+for i in range(height):
+    cline = ""
+    for j in range(width):
+        char = lines[i][j]
+        min_score = None
+        for d in range(len(directions)):
+            score = min_scores[i][j][d]
+            if score is None:
+                continue
+            if min_score is None or score < min_score:
+                char = directions_keys[d]
+                min_score = score
+        cline += char
+    print(cline)
+print()
+
+print(tot_score)
diff --git a/2024/16/one_opti.py b/2024/16/one_opti.py
new file mode 100644
index 0000000..23e70ed
--- /dev/null
+++ b/2024/16/one_opti.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env python3
+
+import pprint
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+directions_keys = ("^", ">", "v", "<")
+
+min_scores: list[list[list[None | int]]] = list()
+for _ in range(height):
+    line: list[list[None | int]] = list()
+    for _ in range(width):
+        cell: list[None | int] = [None] * len(directions)
+        line.append(cell)
+    min_scores.append(line)
+
+start = height - 2, 1
+
+
+def walk(pos: vec, dir: int, score: int, depth: int = 0) -> int | None:
+    i, j = pos
+    char = lines[i][j]
+
+    if depth > 1000:
+        return None
+
+    # print("-" * depth, 28, pos, char, directions_keys[dir], score)
+    if char == "E":
+        return score
+    elif char == "#":
+        return None
+
+    min_score = min_scores[i][j][dir]
+    for d, min_score in enumerate(min_scores[i][j]):
+        if min_score is None:
+            continue
+        if d == dir:
+            if score >= min_score:
+                return None
+        else:
+            if score >= min_score + 1000:
+                return None
+    min_scores[i][j][dir] = score
+
+    mscore = None
+    for ndir, direction in enumerate(directions):
+        ii, jj = i + direction[0], j + direction[1]
+        price = 1 if dir == ndir else 1001
+        nscore = walk((ii, jj), ndir, score + price, depth + 1)
+        if nscore is None:
+            continue
+        if mscore is None or nscore < mscore:
+            mscore = nscore
+    return mscore
+
+
+sys.setrecursionlimit(3000)
+tot_score = walk(start, 1, 0)
+
+# Viz
+for i in range(height):
+    cline = ""
+    for j in range(width):
+        char = lines[i][j]
+        min_score = None
+        for d in range(len(directions)):
+            score = min_scores[i][j][d]
+            if score is None:
+                continue
+            if min_score is None or score < min_score:
+                char = directions_keys[d]
+                min_score = score
+        cline += char
+    print(cline)
+print()
+
+print(tot_score)
diff --git a/2024/16/reddit_edge_case b/2024/16/reddit_edge_case
new file mode 100644
index 0000000..00cc512
--- /dev/null
+++ b/2024/16/reddit_edge_case
@@ -0,0 +1,27 @@
+###########################
+#######################..E#
+######################..#.#
+#####################..##.#
+####################..###.#
+###################..##...#
+##################..###.###
+#################..####...#
+################..#######.#
+###############..##.......#
+##############..###.#######
+#############..####.......#
+############..###########.#
+###########..##...........#
+##########..###.###########
+#########..####...........#
+########..###############.#
+#######..##...............#
+######..###.###############
+#####..####...............#
+####..###################.#
+###..##...................#
+##..###.###################
+#..####...................#
+#.#######################.#
+#S........................#
+###########################
diff --git a/2024/16/reddit_open_maze b/2024/16/reddit_open_maze
new file mode 100644
index 0000000..74fc386
--- /dev/null
+++ b/2024/16/reddit_open_maze
@@ -0,0 +1,14 @@
+####################################################
+#......................................#..........E#
+#......................................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.................#...........#
+#....................#.............................#
+#S...................#.............................#
+####################################################
diff --git a/2024/16/two.py b/2024/16/two.py
new file mode 100644
index 0000000..cbf5b91
--- /dev/null
+++ b/2024/16/two.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+
+import pprint
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+directions_keys = ("^", ">", "v", "<")
+
+min_scores: list[list[list[None | int]]] = list()
+for _ in range(height):
+    line: list[list[None | int]] = list()
+    for _ in range(width):
+        cell: list[None | int] = [None] * len(directions)
+        line.append(cell)
+    min_scores.append(line)
+
+start = height - 2, 1
+
+valid_paths: list[tuple[int, set[vec]]] = list()
+
+
+def walk(pos: vec, dir: int, score: int, path: list[vec]) -> int | None:
+    i, j = pos
+    char = lines[i][j]
+
+    depth = len(path)
+    path = path + [pos]
+
+    if depth > 1000:
+        return None
+
+    # print("-" * depth, 28, pos, char, directions_keys[dir], score)
+    if char == "E":
+        valid_paths.append((score, set(path)))
+        return score
+    elif char == "#":
+        return None
+
+    min_score = min_scores[i][j][dir]
+    if min_score is not None and score > min_score:
+        # print("-" * depth, f" 32 already taken {score} >= {min_score}")
+        return None
+    min_scores[i][j][dir] = score
+
+    mscore = None
+    for ndir, direction in enumerate(directions):
+        ii, jj = i + direction[0], j + direction[1]
+        price = 1 if dir == ndir else 1001
+        nscore = walk((ii, jj), ndir, score + price, path)
+        if nscore is None:
+            continue
+        if mscore is None or nscore < mscore:
+            mscore = nscore
+    return mscore
+
+
+sys.setrecursionlimit(9000)
+tot_score = walk(start, 1, 0, [])
+
+print(76, len(valid_paths))
+all_best: set[vec] = set()
+for s, path in valid_paths:
+    if s != tot_score:
+        continue
+    print(81, "BEST")
+    all_best |= path
+
+# Viz
+for i in range(height):
+    cline = ""
+    for j in range(width):
+        char = lines[i][j]
+        pos = i, j
+        if pos in all_best:
+            min_score = None
+            for d in range(len(directions)):
+                score = min_scores[i][j][d]
+                if score is None:
+                    continue
+                if min_score is None or score < min_score:
+                    char = directions_keys[d]
+                    min_score = score
+        cline += char
+    print(cline)
+print()
+
+
+print(tot_score)
+print(len(all_best))
diff --git a/2024/16/two2.py b/2024/16/two2.py
new file mode 100644
index 0000000..117693f
--- /dev/null
+++ b/2024/16/two2.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python3
+
+import pprint
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+directions_keys = ("^", ">", "v", "<")
+
+min_scores: list[list[list[None | int]]] = list()
+for _ in range(height):
+    line: list[list[None | int]] = list()
+    for _ in range(width):
+        cell: list[None | int] = [None] * len(directions)
+        line.append(cell)
+    min_scores.append(line)
+
+start = height - 2, 1
+
+best: set[vec] = set()
+
+def walk(pos: vec, dir: int, score: int, depth: int) -> int | None:
+    i, j = pos
+    char = lines[i][j]
+
+    if depth > 1000:
+        return None
+
+    # print("-" * depth, 28, pos, char, directions_keys[dir], score)
+    if char == "E":
+        if score == 90440:
+            return score
+        else:
+            return None
+    elif char == "#":
+        return None
+
+    min_score = min_scores[i][j][dir]
+    if min_score is not None and score > min_score:
+        # print("-" * depth, f" 32 already taken {score} >= {min_score}")
+        return None
+    min_scores[i][j][dir] = score
+
+    mscore = None
+    for ndir, direction in enumerate(directions):
+        ii, jj = i + direction[0], j + direction[1]
+        price = 1 if dir == ndir else 1001
+        nscore = walk((ii, jj), ndir, score + price, depth + 1)
+        if nscore is None:
+            continue
+        best.add((ii, jj))
+        # if mscore is None or nscore < mscore:
+        #     mscore = nscore
+    return mscore
+
+
+sys.setrecursionlimit(9000)
+tot_score = walk(start, 1, 0, 0)
+
+# Viz
+for i in range(height):
+    cline = ""
+    for j in range(width):
+        char = lines[i][j]
+        pos = i, j
+        min_score = None
+        for d in range(len(directions)):
+            score = min_scores[i][j][d]
+            if score is None:
+                continue
+            if min_score is None or score < min_score:
+                char = directions_keys[d]
+                min_score = score
+        cline += char
+    print(cline)
+print()
+
+
+print(tot_score)
+print(len(best))
diff --git a/2024/16/two_opti.py b/2024/16/two_opti.py
new file mode 100644
index 0000000..904f525
--- /dev/null
+++ b/2024/16/two_opti.py
@@ -0,0 +1,111 @@
+#!/usr/bin/env python3
+
+import pprint
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+directions_keys = ("^", ">", "v", "<")
+
+min_scores: list[list[list[None | int]]] = list()
+for _ in range(height):
+    line: list[list[None | int]] = list()
+    for _ in range(width):
+        cell: list[None | int] = [None] * len(directions)
+        line.append(cell)
+    min_scores.append(line)
+
+start = height - 2, 1
+
+valid_paths: list[tuple[int, set[vec]]] = list()
+
+
+def walk(pos: vec, dir: int, score: int, path: list[vec]) -> int | None:
+    i, j = pos
+    char = lines[i][j]
+
+    depth = len(path)
+    path = path + [pos]
+
+    if depth > 1000:
+        return None
+
+    # print("-" * depth, 28, pos, char, directions_keys[dir], score)
+    if char == "E":
+        valid_paths.append((score, set(path)))
+        return score
+    elif char == "#":
+        return None
+
+    min_score = min_scores[i][j][dir]
+    for d, min_score in enumerate(min_scores[i][j]):
+        if min_score is None:
+            continue
+        if d == dir:
+            if score > min_score:
+                return None
+        else:
+            if score > min_score + 1000:
+                return None
+    min_scores[i][j][dir] = score
+
+    mscore = None
+    for ndir, direction in enumerate(directions):
+        ii, jj = i + direction[0], j + direction[1]
+        price = 1 if dir == ndir else 1001
+        nscore = walk((ii, jj), ndir, score + price, path)
+        if nscore is None:
+            continue
+        if mscore is None or nscore < mscore:
+            mscore = nscore
+    return mscore
+
+
+sys.setrecursionlimit(9000)
+tot_score = walk(start, 1, 0, [])
+
+print(76, len(valid_paths))
+all_best: set[vec] = set()
+for s, path in valid_paths:
+    if s != tot_score:
+        continue
+    print(81, "BEST")
+    all_best |= path
+
+# Viz
+for i in range(height):
+    cline = ""
+    for j in range(width):
+        char = lines[i][j]
+        pos = i, j
+        if pos in all_best:
+            min_score = None
+            for d in range(len(directions)):
+                score = min_scores[i][j][d]
+                if score is None:
+                    continue
+                if min_score is None or score < min_score:
+                    char = directions_keys[d]
+                    min_score = score
+        cline += char
+    print(cline)
+print()
+
+
+print(tot_score)
+print(len(all_best))
diff --git a/2024/17/Notes.xopp b/2024/17/Notes.xopp
new file mode 100644
index 0000000000000000000000000000000000000000..b5931ef36663d1d8a7c37fdcacca745dc41f1f95
GIT binary patch
literal 28997
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

literal 0
HcmV?d00001

diff --git a/2024/17/README.md b/2024/17/README.md
new file mode 100644
index 0000000..7da08d3
--- /dev/null
+++ b/2024/17/README.md
@@ -0,0 +1,4 @@
+two.py and two_bf.py were written before I got the 2 stars.
+
+First fails on demo2, seconds takes 23 years (literally).
+
diff --git a/2024/17/demog b/2024/17/demog
new file mode 100644
index 0000000..556168c
--- /dev/null
+++ b/2024/17/demog
@@ -0,0 +1,5 @@
+Register A: 41644071
+Register B: 0
+Register C: 0
+
+Program: 2,4,1,2,0,3,5,5,3,0
diff --git a/2024/17/one.py b/2024/17/one.py
new file mode 100644
index 0000000..7529642
--- /dev/null
+++ b/2024/17/one.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+# program 3 bits numbers
+# registers A, B, C: any int
+# instruction 3 bits, operand 3 bits
+# literal operand, combo operand: 0-3 literal, 4-6: register A,B,C
+# instruction pointer starts at 0
+
+# 0 adv: truncated division, numerator = A, denominator 2**combo operand -> A
+# 1 bxl: bitwise XOR, B ^ literal operand -> B
+# 2 bst: combo operand % 8 -> B
+# 3 jnz: { A = 0: nothing; A != 0: literal operand -> IP } # no increase there!
+# 4 bxc: bitwise XOR, B ^ C -> B # operand ignored
+# 5 out: combo operand % 8 -> output
+# 6 bdv: truncated division, numerator = A, denominator 2**combo operand -> B
+# 7 cdv: truncated division, numerator = A, denominator 2**combo operand -> C
+
+A = int(lines[0].split(":")[1])
+B = int(lines[1].split(":")[1])
+C = int(lines[2].split(":")[1])
+
+program = [int(p) for p in lines[4].split(":")[1].split(",")]
+
+output: list[int] = list()
+
+ip = 0
+while ip in range(len(program)):
+    inst = program[ip]
+    liop = program[ip + 1]
+    coop = liop
+    if liop == 4:
+        coop = A
+    elif liop == 5:
+        coop = B
+    elif liop == 6:
+        coop = C
+    trunc_div = A // 2**coop
+
+    if inst == 0:
+        A = trunc_div
+    elif inst == 1:
+        B = B ^ liop
+    elif inst == 2:
+        B = coop % 8
+    elif inst == 3:
+        if A != 0:
+            ip = liop
+            continue
+    elif inst == 4:
+        B = B ^ C
+    elif inst == 5:
+        output.append(coop % 8)
+    elif inst == 6:
+        B = trunc_div
+    elif inst == 7:
+        C = trunc_div
+    else:
+        raise NotImplementedError()
+
+    ip += 2
+
+print(",".join([str(o) for o in output]))
diff --git a/2024/17/two.py b/2024/17/two.py
new file mode 100644
index 0000000..57ba257
--- /dev/null
+++ b/2024/17/two.py
@@ -0,0 +1,202 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+# program 3 bits numbers
+# registers A, B, C: any int
+# instruction 3 bits, operand 3 bits
+# literal operand, combo operand: 0-3 literal, 4-6: register A,B,C
+# instruction pointer starts at 0
+
+# 0 adv: truncated division, numerator = A, denominator 2**combo operand -> A
+# 1 bxl: bitwise XOR, B ^ literal operand -> B
+# 2 bst: combo operand % 8 -> B
+# 3 jnz: { A = 0: nothing; A != 0: literal operand -> IP } # no increase there!
+# 4 bxc: bitwise XOR, B ^ C -> B # operand ignored
+# 5 out: combo operand % 8 -> output
+# 6 bdv: truncated division, numerator = A, denominator 2**combo operand -> B
+# 7 cdv: truncated division, numerator = A, denominator 2**combo operand -> C
+
+instnames = ["adv", "bxl", "bst", "jnz", "bxc", "out", "bdv", "cdv"]
+
+oA = int(lines[0].split(":")[1])
+oB = int(lines[1].split(":")[1])
+oC = int(lines[2].split(":")[1])
+
+program = [int(p) for p in lines[4].split(":")[1].split(",")]
+
+
+def test(oA: int) -> list[int]:
+    # print(32, "Testing", A)
+
+    ip = 0
+    A = oA
+    B = oB
+    C = oC
+
+    output: list[int] = list()
+    oi = 0
+
+    # jumped: set[tuple[int, int, int, int]] = set()
+
+    while ip in range(len(program)):
+        inst = program[ip]
+        liop = program[ip + 1]
+        # print(50, ip, instnames[inst], liop)
+
+        if inst == 1:
+            B = B ^ liop
+        elif inst == 3:
+            if A != 0:
+                ip = liop
+
+                # Infinite loop prevention
+                # state = (ip, A, B, C)
+                # # print(66, state, jumped)
+                # if state in jumped:
+                #     print("Infinite loop!")
+                #     return False
+                # jumped.add(state)
+
+                continue
+        elif inst == 4:
+            B = B ^ C
+        else:
+            coop = liop
+            if liop == 4:
+                coop = A
+            elif liop == 5:
+                coop = B
+            elif liop == 6:
+                coop = C
+
+            if inst == 2:
+                B = coop % 8
+            elif inst == 5:
+                ou = coop % 8
+                output.append(ou)
+                # if oi >= len(program) or program[oi] != ou:
+                #     # if len(output) >= 6:
+                #     #     print(84, oA, output)
+                #     return False
+                oi += 1
+            else:
+                trunc_div = A // 2**coop
+                if inst == 0:
+                    A = trunc_div
+                elif inst == 6:
+                    B = trunc_div
+                elif inst == 7:
+                    C = trunc_div
+                else:
+                    raise NotImplementedError()
+
+        ip += 2
+
+    print(102, oA, output, len(output))
+    # return oi == len(program)
+    return output
+
+
+print(program, len(program))
+for i in range(0, len(program), 2):
+    inst = program[i]
+    liop = program[i + 1]
+    print(106, i, instnames[inst], liop)
+print()
+
+# Bruteforce
+indexes = list(range(len(program)))
+
+
+def to_number(inps: list[int]) -> int:
+    A = 0
+    for i in indexes[::-1]:
+        A <<= 3
+        A += inps[i]
+    return A
+
+
+inps = program.copy()
+res = test(to_number(inps))
+while res != program:
+    for i in indexes[::-1]:
+        j = 0
+        revi = - len(program) + i
+        while res[revi] != program[i]:
+            inps[i] = j
+            A = to_number(inps)
+            res = test(A)
+            j += 1
+    print("Hi")
+
+# i = 3
+# for j in range(8):
+#     inps = program.copy()
+#     inps[i] = j
+#     A = to_number(inps)
+#     test(A)
+
+print()
+
+# indexes = list(range(len(inps)))
+# for i in indexes[::-1]:
+#     An = A & 0b111
+#     A <<= 3
+#     inp = program[i]
+#     A += inp ^ 2
+# A <<= 3
+# A += 1
+
+# # Smartforce
+# A = 0
+# indexes = list(range(len(program)))
+# for i in indexes[::-1]:
+#     An = A & 0b111
+#     A <<= 3
+#     inp = program[i]
+#     A += inp ^ 2
+
+
+# # I thought it would be easy
+# assoc: dict[tuple[int, int], int] = dict()
+# for i in range(8):
+#     for j in range(8):
+#         out = test(i)[0]
+#         assoc[out] = i, j
+#
+# A = 0
+# for p in program:
+#     A = A << 3
+#     A += assoc[p]
+#
+# A = assoc[7] << 6
+
+res = test(A)
+print("Ref", program)
+print("Res", res)
+print("Cor", res == program)
+print(A)
+
+
+# print(test(100000000))
+#
+# Amin = 2**(3*(len(program)-1))
+# Amax = 2**(3*len(program))
+# Amin = 0
+# Amax = 7
+# for A in range(Amin, Amax + 1):
+#     # if A % 65536 == 0:
+#     #     print(91, A)
+#     if test(A):
+#         print(A)
+#         break
+#     A += 1
+
+
+# print(",".join([str(o) for o in output]))
diff --git a/2024/17/two_bf.py b/2024/17/two_bf.py
new file mode 100644
index 0000000..8a6a0ff
--- /dev/null
+++ b/2024/17/two_bf.py
@@ -0,0 +1,125 @@
+#!/usr/bin/env python3
+
+import sys
+import rich.progress
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+# program 3 bits numbers
+# registers A, B, C: any int
+# instruction 3 bits, operand 3 bits
+# literal operand, combo operand: 0-3 literal, 4-6: register A,B,C
+# instruction pointer starts at 0
+
+# 0 adv: truncated division, numerator = A, denominator 2**combo operand -> A
+# 1 bxl: bitwise XOR, B ^ literal operand -> B
+# 2 bst: combo operand % 8 -> B
+# 3 jnz: { A = 0: nothing; A != 0: literal operand -> IP } # no increase there!
+# 4 bxc: bitwise XOR, B ^ C -> B # operand ignored
+# 5 out: combo operand % 8 -> output
+# 6 bdv: truncated division, numerator = A, denominator 2**combo operand -> B
+# 7 cdv: truncated division, numerator = A, denominator 2**combo operand -> C
+
+instnames = ["adv", "bxl", "bst", "jnz", "bxc", "out", "bdv", "cdv"]
+
+oA = int(lines[0].split(":")[1])
+oB = int(lines[1].split(":")[1])
+oC = int(lines[2].split(":")[1])
+
+program = [int(p) for p in lines[4].split(":")[1].split(",")]
+
+
+def test(oA: int) -> bool:
+    # print(32, "Testing", A)
+
+    ip = 0
+    A = oA
+    B = oB
+    C = oC
+
+    # output: list[int] = list()
+    oi = 0
+
+    # jumped: set[tuple[int, int, int, int]] = set()
+
+    while ip in range(len(program)):
+        inst = program[ip]
+        liop = program[ip + 1]
+        # print(50, ip, instnames[inst], liop)
+
+        if inst == 1:
+            B = B ^ liop
+        elif inst == 3:
+            if A != 0:
+                ip = liop
+
+                # Infinite loop prevention
+                # state = (ip, A, B, C)
+                # # print(66, state, jumped)
+                # if state in jumped:
+                #     print("Infinite loop!")
+                #     return False
+                # jumped.add(state)
+
+                continue
+        elif inst == 4:
+            B = B ^ C
+        else:
+            coop = liop
+            if liop == 4:
+                coop = A
+            elif liop == 5:
+                coop = B
+            elif liop == 6:
+                coop = C
+
+            if inst == 2:
+                B = coop % 8
+            elif inst == 5:
+                ou = coop % 8
+                # output.append(ou)
+                if oi >= len(program) or program[oi] != ou:
+                    # if len(output) >= 6:
+                    #     print(84, oA, output)
+                    return False
+                oi += 1
+            else:
+                trunc_div = A // 2**coop
+                if inst == 0:
+                    A = trunc_div
+                elif inst == 6:
+                    B = trunc_div
+                elif inst == 7:
+                    C = trunc_div
+                else:
+                    raise NotImplementedError()
+
+        ip += 2
+
+
+    return oi == len(program)
+    # return output == program
+
+# print(program)
+# for i in range(0, len(program), 2):
+#     inst = program[i]
+#     liop = program[i + 1]
+#     print(106, i, instnames[inst], liop)
+# print()
+#
+# print(test(100000000))
+
+Amin = 2**(3*(len(program)-1))
+Amax = 2**(3*len(program))
+
+for A in rich.progress.track(range(Amin, Amax+1)):
+    if test(A):
+        print(A)
+        break
+    A += 1
+
+
+# print(",".join([str(o) for o in output]))
diff --git a/2024/17/two_dfs.py b/2024/17/two_dfs.py
new file mode 100644
index 0000000..3f34fe9
--- /dev/null
+++ b/2024/17/two_dfs.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+original_B = int(lines[1].split(":")[1])
+original_C = int(lines[2].split(":")[1])
+program = [int(p) for p in lines[4].split(":")[1].split(",")]
+
+
+def output_given_A(A: int) -> list[int]:
+    instruction_pointer = 0
+    B = original_B
+    C = original_C
+
+    output: list[int] = list()
+
+    while instruction_pointer in range(len(program)):
+        instruction = program[instruction_pointer]
+        literal_operator = program[instruction_pointer + 1]
+
+        if instruction == 1:
+            B = B ^ literal_operator
+        elif instruction == 3:
+            if A != 0:
+                instruction_pointer = literal_operator
+                continue
+        elif instruction == 4:
+            B = B ^ C
+        else:
+            combined_operator = literal_operator
+            if literal_operator == 4:
+                combined_operator = A
+            elif literal_operator == 5:
+                combined_operator = B
+            elif literal_operator == 6:
+                combined_operator = C
+
+            if instruction == 2:
+                B = combined_operator % 8
+            elif instruction == 5:
+                output.append(combined_operator % 8)
+            else:
+                trunc_div = A >> combined_operator
+                if instruction == 0:
+                    A = trunc_div
+                elif instruction == 6:
+                    B = trunc_div
+                else:
+                    C = trunc_div
+        instruction_pointer += 2
+
+    return output
+
+
+def input_to_a(input_numbers: list[int]) -> int:
+    A = 0
+    for number in reversed(input_numbers):
+        A = (A << 3) + number
+    return A
+
+
+def dig(depth: int, input_numbers: list[int]) -> int | None:
+    input_numbers = input_numbers.copy()
+    depth += 1
+    for i in range(8):
+        input_numbers[-depth] = i
+        A = input_to_a(input_numbers)
+        output_numbers = output_given_A(A)
+        if output_numbers[-depth:] == program[-depth:]:
+            if depth == len(program):
+                return A
+            res = dig(depth, input_numbers)
+            if res is not None:
+                return res
+    return None
+
+
+print(dig(0, [0] * len(program)))
diff --git a/2024/17/two_fixed.py b/2024/17/two_fixed.py
new file mode 100644
index 0000000..0f387bf
--- /dev/null
+++ b/2024/17/two_fixed.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+original_B = int(lines[1].split(":")[1])
+original_C = int(lines[2].split(":")[1])
+program = [int(p) for p in lines[4].split(":")[1].split(",")]
+
+
+def output_given_A(A: int) -> list[int]:
+    instruction_pointer = 0
+    B = original_B
+    C = original_C
+
+    output: list[int] = list()
+
+    while instruction_pointer in range(len(program)):
+        instruction = program[instruction_pointer]
+        literal_operator = program[instruction_pointer + 1]
+
+        if instruction == 1:
+            B = B ^ literal_operator
+        elif instruction == 3:
+            if A != 0:
+                instruction_pointer = literal_operator
+                continue
+        elif instruction == 4:
+            B = B ^ C
+        else:
+            combined_operator = literal_operator
+            if literal_operator == 4:
+                combined_operator = A
+            elif literal_operator == 5:
+                combined_operator = B
+            elif literal_operator == 6:
+                combined_operator = C
+
+            if instruction == 2:
+                B = combined_operator % 8
+            elif instruction == 5:
+                output.append(combined_operator % 8)
+            else:
+                trunc_div = A >> combined_operator
+                if instruction == 0:
+                    A = trunc_div
+                elif instruction == 6:
+                    B = trunc_div
+                else:
+                    C = trunc_div
+        instruction_pointer += 2
+
+    return output
+
+
+def input_to_a(input_numbers: list[int]) -> int:
+    A = 0
+    for number in reversed(input_numbers):
+        A = (A << 3) + number
+    return A
+
+
+input_numbers: list[int] = program.copy()
+output_numbers: list[int] = output_given_A(input_to_a(input_numbers))
+while output_numbers != program:
+    for i in reversed(range(len(input_numbers))):
+        attempted_number = 0
+        while len(output_numbers) != len(program) or output_numbers[i] != program[i]:
+            input_numbers[i] = attempted_number
+            A = input_to_a(input_numbers)
+            output_numbers = output_given_A(A)
+            attempted_number += 1
+
+print(A)
diff --git a/2024/18/one.py b/2024/18/one.py
new file mode 100644
index 0000000..871e393
--- /dev/null
+++ b/2024/18/one.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+falls = list()
+for line in lines:
+    xs, ys = line.split(",")
+    falls.append((int(xs), int(ys)))
+
+if input_file.startswith("input"):
+    cote = 71
+    simu = 1024
+else:
+    cote = 7
+    simu = 12
+
+vec = tuple[int, int]
+directions = [
+    # COMMENT NOT CORRECT BUT WHO CARES
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+exit = cote - 1, cote - 1
+fallen = set(falls[:simu])
+
+visited: set[vec] = set()
+
+def print_grid() -> None:
+    for y in range(cote):
+        line = ""
+        for x in range(cote):
+            char = "."
+            pos = x, y
+            if pos in fallen:
+                char = "#"
+            elif pos in visited:
+                char = "O"
+            line += char
+        print(line)
+    print()
+
+
+print_grid()
+
+curs: set[vec] = {(0, 0)}
+steps = 0
+
+
+while exit not in curs:
+    print("Step", steps)
+    visited |= curs
+    ncurs: set[vec] = set()
+    for x, y in curs:
+        for direction in directions:
+            xx, yy = x + direction[0], y + direction[1]
+            npos = xx, yy
+            if npos in visited or npos in fallen:
+                continue
+            if x not in range(cote) or y not in range(cote):
+                continue
+            ncurs.add(npos)
+    curs = ncurs
+    steps += 1
+
+print_grid()
+print(steps)
+
+# visited: dict[vec, int] = dict()
+#
+# def dig(pos: vec, steps: int) -> int | None:
+#     if steps > 300:
+#         return None
+#     # print(" " * steps, 55, pos)
+#     if pos == exit:
+#         return steps
+#     if pos in fallen:
+#         return None
+#     x, y = pos
+#     if x not in range(cote) or y not in range(cote):
+#         return None
+#     if pos in visited and visited[pos] < steps:
+#         return None
+#     visited[pos] = steps
+#
+#     mini = None
+#     steps += 1
+#     for direction in directions:
+#         xx, yy = x + direction[0], y + direction[1]
+#         res = dig((xx, yy), steps)
+#         if res is None:
+#             continue
+#         if mini is None or res < mini:
+#             mini = res
+#     return mini
+
+# sys.setrecursionlimit(9000)
+# res = dig((0, 0), 0)
+#
+# print_grid()
+#
+# print(res)
diff --git a/2024/18/two.py b/2024/18/two.py
new file mode 100644
index 0000000..6070c35
--- /dev/null
+++ b/2024/18/two.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+falls = list()
+for line in lines:
+    xs, ys = line.split(",")
+    falls.append((int(xs), int(ys)))
+
+if input_file.startswith("input"):
+    cote = 71
+    simu = 1024
+else:
+    cote = 7
+    simu = 12
+
+vec = tuple[int, int]
+directions = [
+    # COMMENT NOT CORRECT BUT WHO CARES
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+exit = cote - 1, cote - 1
+
+visited: set[vec] = set()
+fallen: set[vec] = set()
+
+
+def print_grid() -> None:
+    for y in range(cote):
+        line = ""
+        for x in range(cote):
+            char = "."
+            pos = x, y
+            if pos in fallen:
+                char = "#"
+            elif pos in visited:
+                char = "O"
+            line += char
+        print(line)
+    print()
+
+
+for simu in range(len(falls)):
+    print("Simu", simu)
+
+    fallen = set(falls[:simu])
+    visited = set()
+    curs: set[vec] = {(0, 0)}
+    steps = 0
+
+    found = False
+    while exit not in curs:
+        # print("Step", steps)
+        if not curs:
+            break
+        visited |= curs
+        ncurs: set[vec] = set()
+        for x, y in curs:
+            for direction in directions:
+                xx, yy = x + direction[0], y + direction[1]
+                npos = xx, yy
+                if npos in visited or npos in fallen:
+                    continue
+                if x not in range(cote) or y not in range(cote):
+                    continue
+                ncurs.add(npos)
+        curs = ncurs
+        steps += 1
+    else:
+        found = True
+
+    if not found:
+        break
+
+print_grid()
+print(simu)
+print(falls[simu-1])
+
+# visited: dict[vec, int] = dict()
+#
+# def dig(pos: vec, steps: int) -> int | None:
+#     if steps > 300:
+#         return None
+#     # print(" " * steps, 55, pos)
+#     if pos == exit:
+#         return steps
+#     if pos in fallen:
+#         return None
+#     x, y = pos
+#     if x not in range(cote) or y not in range(cote):
+#         return None
+#     if pos in visited and visited[pos] < steps:
+#         return None
+#     visited[pos] = steps
+#
+#     mini = None
+#     steps += 1
+#     for direction in directions:
+#         xx, yy = x + direction[0], y + direction[1]
+#         res = dig((xx, yy), steps)
+#         if res is None:
+#             continue
+#         if mini is None or res < mini:
+#             mini = res
+#     return mini
+
+# sys.setrecursionlimit(9000)
+# res = dig((0, 0), 0)
+#
+# print_grid()
+#
+# print(res)
diff --git a/2024/19/.gitignore b/2024/19/.gitignore
new file mode 100644
index 0000000..496c1f7
--- /dev/null
+++ b/2024/19/.gitignore
@@ -0,0 +1 @@
+colors
diff --git a/2024/19/colors.py b/2024/19/colors.py
new file mode 100644
index 0000000..86a2f27
--- /dev/null
+++ b/2024/19/colors.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    print(fd.read().replace("w", "⬜").replace("u", "🟦").replace("b", "⬛").replace("r", "🟥").replace("g", "🟩"))
diff --git a/2024/19/one.py b/2024/19/one.py
new file mode 100644
index 0000000..d65f7fc
--- /dev/null
+++ b/2024/19/one.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+towels = set(map(str.strip, lines[0].split(",")))
+patterns = lines[2:]
+
+def possible(pattern: str) -> bool:
+    if not pattern:
+        return True
+    for towel in towels:
+        if pattern.startswith(towel):
+            if possible(pattern[len(towel):]):
+                return True
+    return False
+
+possible_count = 0
+for pattern in patterns:
+    if possible(pattern):
+        possible_count += 1
+
+print(possible_count)
+
diff --git a/2024/19/two.py b/2024/19/two.py
new file mode 100644
index 0000000..ea3a9e9
--- /dev/null
+++ b/2024/19/two.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import sys
+import functools
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+towels = set(map(str.strip, lines[0].split(",")))
+patterns = lines[2:]
+
+
+@functools.cache
+def possible(pattern: str) -> int:
+    if not pattern:
+        return 1
+    possible_count = 0
+    for towel in towels:
+        if pattern.startswith(towel):
+            possible_count += possible(pattern[len(towel) :])
+    return possible_count
+
+
+possible_count = 0
+for pattern in patterns:
+    res = possible(pattern)
+    print(27, pattern, res)
+    possible_count += res
+
+print(possible_count)
diff --git a/2024/2/one.py b/2024/2/one.py
new file mode 100644
index 0000000..b015955
--- /dev/null
+++ b/2024/2/one.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+
+safe_num = 0
+for line in lines:
+    report = [int(level) for level in line.split(" ")]
+    acc = sorted(report)
+    dec = acc[::-1]
+    if report != acc and report != dec:
+        continue
+    for i in range(len(report)-1):
+        diff = abs(report[i] - report[i+1])
+        if diff < 1 or diff > 3:
+            break
+    else:
+        safe_num += 1
+print(safe_num)
+
+
diff --git a/2024/2/two.py b/2024/2/two.py
new file mode 100644
index 0000000..7ffe836
--- /dev/null
+++ b/2024/2/two.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+
+def is_safe(report) -> bool:
+    acc = sorted(report)
+    dec = acc[::-1]
+    if report != acc and report != dec:
+        return False
+    for i in range(len(report) - 1):
+        diff = abs(report[i] - report[i + 1])
+        if diff < 1 or diff > 3:
+            return False
+    else:
+        return True
+
+
+safe_num = 0
+for line in lines:
+    report = [int(level) for level in line.split(" ")]
+    possible_reports = [report]
+    for i in range(len(report)):
+        rep = report.copy()
+        rep.pop(i)
+        possible_reports.append(rep)
+    for rep in possible_reports:
+        if is_safe(rep):
+            safe_num += 1
+            break
+
+print(safe_num)
diff --git a/2024/20/README.md b/2024/20/README.md
new file mode 100644
index 0000000..fea7afd
--- /dev/null
+++ b/2024/20/README.md
@@ -0,0 +1,2 @@
+Reading comprehension got me on the second part,
+a one byte change helped 🙃
diff --git a/2024/20/demog b/2024/20/demog
new file mode 100644
index 0000000..9eccf17
--- /dev/null
+++ b/2024/20/demog
@@ -0,0 +1,4 @@
+#####
+#S#E#
+#...#
+#####
diff --git a/2024/20/demog2 b/2024/20/demog2
new file mode 100644
index 0000000..9fb6018
--- /dev/null
+++ b/2024/20/demog2
@@ -0,0 +1,32 @@
+#############################################################################################
+#S#........................................................................................E#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#.#########################################################################################.#
+#...........................................................................................#
+#############################################################################################
diff --git a/2024/20/demog3 b/2024/20/demog3
new file mode 100644
index 0000000..cb01c5e
--- /dev/null
+++ b/2024/20/demog3
@@ -0,0 +1,5 @@
+######
+#...E#
+#S####
+#....#
+######
diff --git a/2024/20/one.py b/2024/20/one.py
new file mode 100644
index 0000000..1909ce9
--- /dev/null
+++ b/2024/20/one.py
@@ -0,0 +1,129 @@
+#!/usr/bin/env python3
+
+import collections
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+vec = tuple[int, int]
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+Cheat = tuple[vec, int]
+
+cheats: set[Cheat] = set()
+for i, line in enumerate(lines):
+    if "S" in line:
+        j = line.index("S")
+        start = i, j
+    if i in range(1, height - 1):
+        for j in range(1, width - 1):
+            char = lines[i][j]
+            if char != "#":
+                continue
+            for d, direction in enumerate(directions):
+                ii, jj = i + direction[0], j + direction[1]
+                if ii not in range(1, height - 1) or jj not in range(1, width - 1):
+                    continue
+                cchar = lines[ii][jj]
+                if cchar == "#":
+                    continue
+                cheats.add(((i, j), d))
+
+
+def print_grid(visited: list[list[int | None]], cheat: Cheat) -> None:
+    for i in range(height):
+        line = ""
+        for j in range(width):
+            char = lines[i][j]
+            if visited[i][j] is not None:
+                char = "O"
+            if cheat[0] == (i, j):
+                char = "X"
+            line += char
+        print(line)
+    print()
+
+
+def time(cheat: Cheat) -> int | None:
+    visited: list[list[int | None]] = list()
+    for _ in range(height):
+        visited.append([None] * width)
+    stack: set[vec] = {start}
+    for s in range(1, 10000):
+        nstack: set[vec] = set()
+        for pos in stack:
+            i, j = pos
+            for d, direction in enumerate(directions):
+                if (i, j) == cheat[0]:
+                    if d != cheat[1]:
+                        continue
+                ii, jj = i + direction[0], j + direction[1]
+                cchar = lines[ii][jj]
+                if cchar == "#" and cheat != ((ii, jj), d):
+                    continue
+                elif cchar == "E":
+                    # if s == 84 - 8:
+                    #     print_grid(visited, cheat)
+                    return s
+                previs = visited[ii][jj]
+                if previs is not None and previs < s:
+                    continue
+                visited[ii][jj] = s
+                nstack.add((ii, jj))
+        stack = nstack
+
+        # print("Second", s)
+        # print_grid(visited)
+    else:
+        return None
+
+
+canon_saves: collections.Counter[int] = collections.Counter()
+for k, v in (
+    {
+        2: 14,
+        4: 14,
+        6: 2,
+        8: 4,
+        10: 2,
+        12: 3,
+        20: 1,
+        36: 1,
+        38: 1,
+        40: 1,
+        64: 1,
+    }
+).items():
+    canon_saves[k] = v
+
+normal = time(((0, 0), 0))
+assert normal
+saves: collections.Counter[int] = collections.Counter()
+saves_mo100 = 0
+print(f"{normal=}")
+print(f"{len(cheats)=}")
+for c, cheat in enumerate(cheats):
+    print("Cheat", c, "/", len(cheats))
+    ntime = time(cheat)
+    assert ntime
+    diff = normal - ntime
+    saves[diff] += 1
+    if diff >= 100:
+        saves_mo100 += 1
+del saves[0]
+print(f"{saves=}")
+print(f"{canon_saves=}")
+print(f"{(saves == canon_saves)=}")
+print(saves_mo100)
+# 1282: too low
diff --git a/2024/20/reddit_part3 b/2024/20/reddit_part3
new file mode 100644
index 0000000..20dff19
--- /dev/null
+++ b/2024/20/reddit_part3
@@ -0,0 +1,41 @@
+#########################################
+#...#.............#.....#.....#.....#...#
+###.#.###.#########.###.###.#####.###.#.#
+#...#...#.#.#.....#...#...#.#.........#.#
+#..##.###.#.#####.#####.#.#.#.#####.#.#.#
+#.......#.....#.#.....#.#...#...#...#.#.#
+#.###########.#.#.####.####.#.###########
+#.#.#...#...#.....#.................#...#
+#.#.#.#.#.#.###.#.#.###.#########.#####.#
+#.....#...#.....#...#.........#...#.#.#.#
+#####.#####.#####.#.#.#.#.#######.#.#.#.#
+#.....#.........#.#.#...#...#...#.#...#.#
+#.#########.#######.#####.#.##..###.###.#
+#...#.......#.....#.#...#.#...#.....#...#
+#.###.###########.#.###.#.#.###.#######.#
+#.#.#.............#.....#.#...#...#.....#
+###.#.#####.#####.#.###.#.#####.#####.###
+#...#.#.........#.#...#...#...#.#.....#.#
+###.###.#.#########.#####.###.#.#.#.#.#.#
+#S#.#...#.#.....#.....#.........#.#.#..E#
+#.#.#.#########.#.#########.#.###.#####.#
+#.....#.........#...#.#...#.#.....#...#.#
+###.#####..##.#.#####.#.###.#####.###.###
+#.#.#...#.#.#.#.#...#...#...#.........#.#
+#.#.###.###.#.#.#.#####.####.##.#.#####.#
+#.#.#.#.#.#...#.........#.#...#.#.#...#.#
+#.#.#.#.#.#####.###.#.#.#.###.#.###.###.#
+#...#.......#...#...#.#.#.........#.#...#
+#######.#####.#####.###.#.#.#####.#.###.#
+#.............#.....#.#.#.#.....#.......#
+###############.#####.#.#########.#.#.###
+#.....#...#.#.........#.#...#...#.#.#.#.#
+#.#.#.#.#.#.###.#########.###.###.#####.#
+#.#.#.#.#...........#.#.............#...#
+###.#.#.###.#######.#.#.#.###.###.#.#.###
+#...#...#...#.#...#.#...#...#.#.#.#.#...#
+###.#.#######.#.#.#.###.#####.#..##.#.###
+#.#.#...#.....#.#.#.......#.#.#...#.....#
+#.#.#####.###.#.#.#.#.#####.#####.###.#.#
+#.....#.....#.......#.............#...#.#
+#########################################
diff --git a/2024/20/reddit_part3g b/2024/20/reddit_part3g
new file mode 100644
index 0000000..c9c3729
--- /dev/null
+++ b/2024/20/reddit_part3g
@@ -0,0 +1,41 @@
+#########################################
+#...#.............#.....#.....#.....#...#
+###.#.###.#########.###.###.#####.###.#.#
+#...#...#.#.#.....#...#...#.#.........#.#
+#..##.###.#.#####.#####.#.#.#.#####.#.#.#
+#.......#.....#.#.....#.#...#...#...#.#.#
+#.###########.#.#.####.####.#.###########
+#.#.#...#...#.....#.................#...#
+#.#.#.#.#.#.###.#.#.###.#########.#####.#
+#.....#...#.....#...#.........#...#.#.#.#
+#####.#####.#####.#.#.#.#.#######.#.#.#.#
+#.....#.........#.#.#...#...#...#.#...#.#
+#.#########.#######.#####.#.##..###.###.#
+#...#.......#.....#.#...#.#...#.....#...#
+#.###.###########.#.###.#.#.###.#######.#
+#.#.#.............#.....#.#...#...#.....#
+###.#.#####.#####.#.###.#.#####.#####.###
+#...#.#.........#.#...#...#...#.#.....#.#
+###.###.#.#########.#####.###.#.#.#.#.#.#
+#S#.#...#.#.....#.....#.........#.#.#..E#
+#.#.#.#########.#.#########.#.###.#####.#
+#.....#.........#...#.#...#.#.....#...#.#
+###.#####..##.#.#####.#.###.#####.###.###
+#.#.#...#.#.#.#.#...#...#...#.........#.#
+#.#.###.###.#.#.#.#####.####.##.#.#####.#
+#.#.#.#.#.#...#.........#.#...#.#.#...#.#
+#.#.#.#.#.#####.###.#.#.#.###.#.###.###.#
+#...#.......#...#...#.#.#.........#.#...#
+#######.#####.#####.###.#.#.#####.#.###.#
+#.............#.....#.#.#.#.....#.......#
+#####################.#.#########.#.#.###
+#.....#...#.#.........#.#...#...#.#.#.#.#
+#.#.#.#.#.#.###.#########.###.###.#####.#
+#.#.#.#.#...........#.#.............#...#
+###.#.#.###.#######.#.#.#.###.###.#.#.###
+#...#...#...#.#...#.#...#...#.#.#.#.#...#
+###.#.#######.#.#.#.###.#####.#..##.#.###
+#.#.#...#.....#.#.#.......#.#.#...#.....#
+#.#.#####.###.#.#.#.#.#####.#####.###.#.#
+#.....#.....#.......#.............#...#.#
+#########################################
diff --git a/2024/20/two.py b/2024/20/two.py
new file mode 100644
index 0000000..a12dd27
--- /dev/null
+++ b/2024/20/two.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python3
+
+import collections
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+# Adjust parameters for part/file
+part = int(sys.argv[2])
+assert part in (1, 2)
+
+if input_file.startswith("input"):
+    minic = 100
+else:
+    if part == 1:
+        minic = 1
+    else:
+        minic = 50
+skips = 1 if part == 1 else 20
+canon: collections.Counter[int] = collections.Counter()
+demo = {}
+if input_file == "demo":
+    if skips == 1:
+        demo = {2: 14, 4: 14, 6: 2, 8: 4, 10: 2} | (
+            {12: 3, 20: 1, 36: 1, 38: 1, 40: 1, 64: 1}
+        )
+    elif skips == 20:
+        demo = {50: 32, 52: 31, 54: 29, 56: 39, 58: 25, 60: 23} | (
+            {62: 20, 64: 19, 66: 12, 68: 14, 70: 12, 72: 22, 74: 4, 76: 3}
+        )
+    for k, v in demo.items():
+        canon[k] = v
+
+vec = tuple[int, int]
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+# Find start position
+for i, line in enumerate(lines):
+    if "S" in line:
+        j = line.index("S")
+        start = i, j
+
+
+# Visit normally
+normal = None
+visited: list[list[int | None]] = list()
+for _ in range(height):
+    visited.append([None] * width)
+visited[start[0]][start[1]] = 0
+stack: set[vec] = {start}
+s = 0
+while stack:
+    s += 1
+    nstack: set[vec] = set()
+    for pos in stack:
+        i, j = pos
+        for d, direction in enumerate(directions):
+            ii, jj = i + direction[0], j + direction[1]
+
+            previs = visited[ii][jj]
+            if previs is not None and previs < s:
+                continue
+            visited[ii][jj] = s
+
+            cchar = lines[ii][jj]
+            if cchar == "#":
+                continue
+            elif cchar == "E":
+                if normal is None:
+                    normal = s
+            nstack.add((ii, jj))
+    stack = nstack
+assert normal
+
+# Print
+for i in range(height):
+    line = ""
+    for j in range(width):
+        char = lines[i][j]
+        if visited[i][j] is not None:
+            if char == "#":
+                char = "@"
+            else:
+                char = "O"
+        line += char
+    print(line)
+print()
+
+
+# Find cheats
+saves: collections.Counter[int] = collections.Counter()
+for i in range(1, height - 1):
+    if height > 100:
+        print(103, i, "/", height)
+    for j in range(1, width - 1):
+        char = lines[i][j]
+        if char == "#":
+            continue
+        ovis = visited[i][j]
+        if ovis is None:
+            continue
+        if ovis >= normal:
+            continue
+        # for di in range(-skips, skips):
+        #     ii = i + di
+        #     G
+        for ii in range(1, height - 1):
+            for jj in range(1, width - 1):
+                manh = abs(i - ii) + abs(j - jj)
+                if manh > skips:
+                    continue
+                cchar = lines[ii][jj]
+                if cchar == "#":
+                    continue
+                nvis = visited[ii][jj]
+                if nvis is None:
+                    continue
+                orem = normal - ovis
+                nrem = abs(normal - nvis) + manh
+                save = orem - nrem
+                if save < minic:
+                    continue
+                saves[save] += 1
+
+
+print(f"{normal=}")
+print(f"{dict(sorted(saves.items()))=}")
+if demo:
+    print(f"{dict(sorted(canon.items()))=}")
+    diff = canon.copy()
+    diff.subtract(saves)
+    print(f"{dict(sorted(diff.items()))=}")
+    print(f"{(saves == canon)=}")
+    print(f"{saves.total()=}")
+    print(f"{canon.total()=}")
+    difft = 0
+    for v in diff.values():
+        difft += abs(v)
+    print(f"{difft=}")
+print(saves.total())
+# 1119834 too high
+# 982425 correct!
diff --git a/2024/20/two_correct.py b/2024/20/two_correct.py
new file mode 100644
index 0000000..81b428d
--- /dev/null
+++ b/2024/20/two_correct.py
@@ -0,0 +1,212 @@
+#!/usr/bin/env python3
+
+import collections
+import colorsys
+import sys
+
+import rich.console
+
+import rich.text
+import rich.progress
+
+console = rich.console.Console()
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+# Adjust parameters for part/file
+part = int(sys.argv[2])
+assert part in (1, 2)
+
+if input_file.startswith("input"):
+    minic = 100
+elif input_file.startswith("reddit_part3"):
+    minic = 30
+else:
+    if part == 1:
+        minic = 1
+    else:
+        minic = 50
+skips = 2 if part == 1 else 20
+canon: collections.Counter[int] = collections.Counter()
+demo = {}
+if input_file == "demo":
+    if part == 1:
+        demo = {2: 14, 4: 14, 6: 2, 8: 4, 10: 2} | (
+            {12: 3, 20: 1, 36: 1, 38: 1, 40: 1, 64: 1}
+        )
+    elif part == 2:
+        demo = {50: 32, 52: 31, 54: 29, 56: 39, 58: 25, 60: 23} | (
+            {62: 20, 64: 19, 66: 12, 68: 14, 70: 12, 72: 22, 74: 4, 76: 3}
+        )
+    for k, v in demo.items():
+        canon[k] = v
+
+vec = tuple[int, int]
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+# Find start position
+for i, line in enumerate(lines):
+    if "S" in line:
+        j = line.index("S")
+        start = i, j
+    if "E" in line:
+        j = line.index("E")
+        stop = i, j
+
+
+# Visit forward
+normal = None
+forward: list[list[int | None]] = list()
+for _ in range(height):
+    forward.append([None] * width)
+forward[start[0]][start[1]] = 0
+stack: set[vec] = {start}
+s = 0
+while stack:
+    s += 1
+    nstack: set[vec] = set()
+    for pos in stack:
+        i, j = pos
+        for d, direction in enumerate(directions):
+            ii, jj = i + direction[0], j + direction[1]
+
+            cchar = lines[ii][jj]
+            if cchar == "#":
+                continue
+
+            previs = forward[ii][jj]
+            if previs is not None and previs < s:
+                continue
+            forward[ii][jj] = s
+
+            if cchar == "E":
+                if normal is None:
+                    normal = s
+            nstack.add((ii, jj))
+    stack = nstack
+assert normal
+
+# Visit backwards
+backward: list[list[int | None]] = list()
+for _ in range(height):
+    backward.append([None] * width)
+backward[stop[0]][stop[1]] = 0
+stack = {stop}
+s = 0
+while stack:
+    s += 1
+    nstack = set()
+    for pos in stack:
+        i, j = pos
+        for d, direction in enumerate(directions):
+            ii, jj = i + direction[0], j + direction[1]
+
+            cchar = lines[ii][jj]
+            if cchar == "#":
+                continue
+
+            previs = backward[ii][jj]
+            if previs is not None and previs < s:
+                continue
+            backward[ii][jj] = s
+
+            if cchar == "E":
+                assert s == normal
+            nstack.add((ii, jj))
+    stack = nstack
+
+# Print
+
+
+def perc2color(perc: float) -> str:
+    rgb = colorsys.hsv_to_rgb(perc, 1.0, 1.0)
+    r, g, b = tuple(round(c * 255) for c in rgb)
+    return f"rgb({r},{g},{b})"
+
+
+text = rich.text.Text()
+for i in range(height):
+    for j in range(width):
+        fg = "white"
+        bg = "black"
+        char = lines[i][j]
+        forw = forward[i][j]
+        if char == ".":
+            if forw is not None:
+                fg = perc2color(forw / normal)
+                char = str(forw % 10)
+            bckw = backward[i][j]
+            if bckw is not None:
+                bg = perc2color(bckw / normal)
+        if char == "#":
+            char = "█"
+        text.append(char, style=f"{fg} on {bg}")
+    text.append("\n")
+console.print(text)
+
+
+# Find cheats
+saves: collections.Counter[int] = collections.Counter()
+for i in rich.progress.track(range(1, height - 1), description="Finding cheats"):
+    for j in range(1, width - 1):
+        char = lines[i][j]
+        if char == "#":
+            continue
+        ovis = forward[i][j]
+        if ovis is None:
+            continue
+        if ovis >= normal:
+            continue
+        min_i = max(1, i - skips)
+        max_i = min(height - 1, i + skips)
+        for ii in range(min_i, max_i + 1):
+            rem = skips - abs(ii - i)
+            min_j = max(1, j - rem)
+            max_j = min(width - 1, j + rem)
+            for jj in range(min_j, max_j + 1):
+                manh = abs(i - ii) + abs(j - jj)
+                if manh > skips:
+                    continue
+                cchar = lines[ii][jj]
+                if cchar == "#":
+                    continue
+                nvis = backward[ii][jj]
+                if nvis is None:
+                    continue
+                orem = normal - ovis
+                nrem = nvis + manh
+                save = orem - nrem
+                if save < minic:
+                    continue
+                saves[save] += 1
+
+log = console.log
+
+log(f"{normal=}")
+log(f"{dict(sorted(saves.items()))=}")
+if demo:
+    log(f"{dict(sorted(canon.items()))=}")
+    diff = canon.copy()
+    diff.subtract(saves)
+    log(f"{dict(sorted(diff.items()))=}")
+    log(f"{(saves == canon)=}")
+    log(f"{saves.total()=}")
+    log(f"{canon.total()=}")
+    difft = 0
+    for v in diff.values():
+        difft += abs(v)
+    log(f"{difft=}")
+print(saves.total())
+# 1119834 too high
+# 982425 correct!
diff --git a/2024/20/two_fast.py b/2024/20/two_fast.py
new file mode 100644
index 0000000..dd6f11d
--- /dev/null
+++ b/2024/20/two_fast.py
@@ -0,0 +1,172 @@
+#!/usr/bin/env python3
+
+import collections
+import colorsys
+import sys
+import rich.console
+
+console = rich.console.Console()
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+# Adjust parameters for part/file
+part = int(sys.argv[2])
+assert part in (1, 2)
+
+if input_file.startswith("input"):
+    minic = 100
+elif input_file.startswith("reddit_part3"):
+    minic = 30
+else:
+    if part == 1:
+        minic = 1
+    else:
+        minic = 50
+skips = 2 if part == 1 else 20
+canon: collections.Counter[int] = collections.Counter()
+demo = {}
+if input_file == "demo":
+    if part == 1:
+        demo = {2: 14, 4: 14, 6: 2, 8: 4, 10: 2} | (
+            {12: 3, 20: 1, 36: 1, 38: 1, 40: 1, 64: 1}
+        )
+    elif part == 2:
+        demo = {50: 32, 52: 31, 54: 29, 56: 39, 58: 25, 60: 23} | (
+            {62: 20, 64: 19, 66: 12, 68: 14, 70: 12, 72: 22, 74: 4, 76: 3}
+        )
+    for k, v in demo.items():
+        canon[k] = v
+
+vec = tuple[int, int]
+directions = [
+    (-1, 0),  # ^ North
+    (0, 1),  # > East
+    (1, 0),  # v South
+    (0, -1),  # < West
+]
+
+# Find start position
+for i, line in enumerate(lines):
+    if "S" in line:
+        j = line.index("S")
+        start = i, j
+
+
+# Visit normally
+normal = None
+visited: list[list[int | None]] = list()
+for _ in range(height):
+    visited.append([None] * width)
+visited[start[0]][start[1]] = 0
+stack: set[vec] = {start}
+s = 0
+while stack:
+    s += 1
+    nstack: set[vec] = set()
+    for pos in stack:
+        i, j = pos
+        for d, direction in enumerate(directions):
+            ii, jj = i + direction[0], j + direction[1]
+
+            cchar = lines[ii][jj]
+            if cchar == "#":
+                continue
+
+            previs = visited[ii][jj]
+            if previs is not None and previs < s:
+                continue
+            visited[ii][jj] = s
+
+            if cchar == "E":
+                if normal is None:
+                    normal = s
+            nstack.add((ii, jj))
+    stack = nstack
+assert normal
+
+# Print
+for i in range(height):
+    line = ""
+    for j in range(width):
+        char = lines[i][j]
+        vis = visited[i][j]
+        if (i, j) == (19, 1):
+            char = "[bold red on black]@"
+        elif (i, j) == (15, 1):
+            char = "[bold red on black]a"
+        elif vis is not None and char == ".":
+            hue = vis / normal
+            rgb = colorsys.hsv_to_rgb(hue, 1.0, 1.0)
+            r, g, b = tuple(round(c * 255) for c in rgb)
+            char = f"[on rgb({r},{g},{b})]{vis % 10}"
+        elif char == "#":
+            char = "[white]█"
+        else:
+            char = f"[bold green on black]{char}"
+        line += char
+    console.print(line)
+print()
+
+
+# Find cheats
+saves: collections.Counter[int] = collections.Counter()
+for i in range(1, height - 1):
+    if height > 100:
+        print(103, i, "/", height-2)
+    for j in range(1, width - 1):
+        char = lines[i][j]
+        if char == "#":
+            continue
+        ovis = visited[i][j]
+        if ovis is None:
+            continue
+        if ovis >= normal:
+            continue
+        min_i = max(1, i-skips)
+        max_i = min(height-1, i+skips)
+        for ii in range(min_i, max_i+1):
+            rem = skips - abs(ii - i)
+            min_j = max(1, j-rem)
+            max_j = min(width-1, j+rem)
+            for jj in range(min_j, max_j+1):
+                manh = abs(i - ii) + abs(j - jj)
+                if manh > skips:
+                    continue
+                cchar = lines[ii][jj]
+                if cchar == "#":
+                    continue
+                nvis = visited[ii][jj]
+                if nvis is None:
+                    continue
+                orem = normal - ovis
+                # Works if there's space after the E, but catches unrelated paths
+                nrem = abs(normal - nvis) + manh
+                save = orem - nrem
+                if save < minic:
+                    continue
+                saves[save] += 1
+
+
+print(f"{normal=}")
+print(f"{dict(sorted(saves.items()))=}")
+if demo:
+    print(f"{dict(sorted(canon.items()))=}")
+    diff = canon.copy()
+    diff.subtract(saves)
+    print(f"{dict(sorted(diff.items()))=}")
+    print(f"{(saves == canon)=}")
+    print(f"{saves.total()=}")
+    print(f"{canon.total()=}")
+    difft = 0
+    for v in diff.values():
+        difft += abs(v)
+    print(f"{difft=}")
+print(saves.total())
+# 1119834 too high
+# 982425 correct!
diff --git a/2024/21/Notes.xopp b/2024/21/Notes.xopp
new file mode 100644
index 0000000000000000000000000000000000000000..7fc861cd1cf6ee92adec39b91a0ae4baea413e5e
GIT binary patch
literal 85933
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

literal 0
HcmV?d00001

diff --git a/2024/21/Spreadsheet.ods b/2024/21/Spreadsheet.ods
new file mode 100644
index 0000000000000000000000000000000000000000..f37f05a87dc56b50b129b880d5af2270d2ef723f
GIT binary patch
literal 21560
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
JS7gIE`X{FxYYPAX

literal 0
HcmV?d00001

diff --git a/2024/21/demog b/2024/21/demog
new file mode 100644
index 0000000..44442d2
--- /dev/null
+++ b/2024/21/demog
@@ -0,0 +1 @@
+3A
diff --git a/2024/21/one.py b/2024/21/one.py
new file mode 100644
index 0000000..74e16cd
--- /dev/null
+++ b/2024/21/one.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+numeric_keypad = ["789", "456", "123", " 0A"]
+directional_keypad = [" ^A", "<v>"]
+
+vec = tuple[int, int]
+directions = {
+    "^": (-1, 0),  # ^ North
+    ">": (0, 1),  # > East
+    "v": (1, 0),  # v South
+    "<": (0, -1),  # < West
+}
+directional_keypad_buttons = tuple(directions.keys()) + ("A",)
+
+complexity = int(sys.argv[2])
+keypads = [directional_keypad] * complexity + [numeric_keypad]
+
+
+def but_pos(but: str, keypad: list[str]) -> vec:
+    for i, line in enumerate(keypad):
+        if but in line:
+            return i, line.index(but)
+    raise IndexError("No such button")
+
+
+def in_bounds(i: int, j: int, keypad: list[str]) -> bool:
+    if j not in range(3) or i not in range(len(keypad)):
+        return False
+    return keypad[i][j] != " "
+
+last_but = "A"
+all_a = [but_pos("A", keypad) for keypad in keypads]
+
+score = 0
+for code in lines:
+    print("Code", code)
+    topresses = 0
+    for desir_but in code:
+        print("Button", desir_but)
+        all_a[-1] = but_pos(last_but, keypads[-1])
+        start_poss = tuple(all_a)
+        all_a[-1] = but_pos(desir_but, keypads[-1])
+        desir_poss = tuple(all_a)
+
+        stack = {start_poss}
+        seen = set()
+        presses = 0
+        while desir_poss not in stack:
+            # print("Press", presses, stack)
+            presses += 1
+            nstack = set()
+            for poss in stack:
+                for but in directional_keypad_buttons:
+                    # Find which keypad this will move
+                    k = 0
+                    while but == "A" and k < len(keypads) - 1:
+                        i, j = poss[k]
+                        but = keypads[k][i][j]
+                        k += 1
+
+                    # Do not press the final keypad
+                    if k == len(keypads) - 1 and but == "A":
+                        continue
+
+                    # Move
+                    direction = directions[but]
+                    i, j = poss[k]
+                    ii, jj = i + direction[0], j + direction[1]
+                    if not in_bounds(ii, jj, keypads[k]):
+                        continue
+
+                    # Ensure we haven't been in this state before
+                    state = poss[:k] + ((ii, jj),) + poss[k + 1 :]
+                    if state in seen:
+                        continue
+                    seen.add(state)
+
+                    # print(" Kept", state)
+                    nstack.add(state)
+
+            stack = nstack
+        topresses += presses + 1
+        last_but = desir_but
+
+    numpart = int("0" + code.replace("A", ""))
+    print(f"{topresses=} * {numpart=}")
+    score += topresses * numpart
+
+
+
+print(score)
diff --git a/2024/21/onet.py b/2024/21/onet.py
new file mode 100644
index 0000000..19ec3ff
--- /dev/null
+++ b/2024/21/onet.py
@@ -0,0 +1,97 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+numeric_keypad = ["789", "456", "123", " 0A"]
+directional_keypad = [" ^A", "<v>"]
+
+vec = tuple[int, int]
+directions = {
+    "^": (-1, 0),  # ^ North
+    ">": (0, 1),  # > East
+    "v": (1, 0),  # v South
+    "<": (0, -1),  # < West
+}
+directional_keypad_buttons = tuple(directions.keys()) + ("A",)
+
+complexity = int(sys.argv[2])
+keypads = [directional_keypad] * complexity + [numeric_keypad]
+
+
+def but_pos(but: str, keypad: list[str]) -> vec:
+    for i, line in enumerate(keypad):
+        if but in line:
+            return i, line.index(but)
+    raise IndexError("No such button")
+
+
+def in_bounds(i: int, j: int, keypad: list[str]) -> bool:
+    if j not in range(3) or i not in range(len(keypad)):
+        return False
+    return keypad[i][j] != " "
+
+last_but = "A"
+all_a = [but_pos("A", keypad) for keypad in keypads]
+
+score = 0
+for code in lines:
+    # print("Code", code)
+    topresses = 0
+    for desir_but in code:
+        # print("Button", desir_but)
+        all_a[-1] = but_pos(last_but, keypads[-1])
+        start_poss = tuple(all_a)
+        all_a[-1] = but_pos(desir_but, keypads[-1])
+        if len(keypads) > 1:
+            all_a[-2] = but_pos("^", keypads[-2])
+        desir_poss = tuple(all_a)
+
+        stack = {start_poss}
+        seen = set()
+        presses = 0
+        while desir_poss not in stack:
+            # print("Press", presses, stack)
+            presses += 1
+            nstack = set()
+            for poss in stack:
+                for but in directional_keypad_buttons:
+                    # Find which keypad this will move
+                    k = 0
+                    while but == "A" and k < len(keypads) - 1:
+                        i, j = poss[k]
+                        but = keypads[k][i][j]
+                        k += 1
+
+                    # Do not press the final keypad
+                    if k == len(keypads) - 1 and but == "A":
+                        continue
+
+                    # Move
+                    direction = directions[but]
+                    i, j = poss[k]
+                    ii, jj = i + direction[0], j + direction[1]
+                    if not in_bounds(ii, jj, keypads[k]):
+                        continue
+
+                    # Ensure we haven't been in this state before
+                    state = poss[:k] + ((ii, jj),) + poss[k + 1 :]
+                    if state in seen:
+                        continue
+                    seen.add(state)
+
+                    # print(" Kept", state)
+                    nstack.add(state)
+
+            stack = nstack
+        topresses += presses + 0
+        last_but = desir_but
+
+    score += topresses
+
+print(score)
+
diff --git a/2024/21/two.py b/2024/21/two.py
new file mode 100644
index 0000000..1ebbf45
--- /dev/null
+++ b/2024/21/two.py
@@ -0,0 +1,281 @@
+#!/usr/bin/env python3
+
+import sys
+import typing
+import functools
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+numeric_keypad = ["789", "456", "123", " 0A"]
+directional_keypad = [" ^A", "<v>"]
+
+vec = tuple[int, int]
+directions = {
+    "^": (-1, 0),  # ^ North
+    ">": (0, 1),  # > East
+    "v": (1, 0),  # v South
+    "<": (0, -1),  # < West
+}
+directional_keypad_buttons = tuple(directions.keys()) + ("A",)
+
+complexity = int(sys.argv[2])
+keypads = [numeric_keypad] + ([directional_keypad] * complexity)
+
+
+def but_pos(but: str, keypad: list[str]) -> vec:
+    for i, line in enumerate(keypad):
+        if but in line:
+            return i, line.index(but)
+    raise IndexError(f"No such button: {but} in {keypad}")
+
+
+def in_bounds(i: int, j: int, keypad: list[str]) -> bool:
+    if j not in range(3) or i not in range(len(keypad)):
+        return False
+    return keypad[i][j] != " "
+
+
+# FIFTH TRY
+# Using 2 as a base
+
+
+@functools.cache
+def press(buts: str, depth: int) -> int:
+    if depth == len(keypads):
+        return len(buts)
+    keypad = keypads[depth]
+    i, j = but_pos("A", keypad)
+    nums = 0
+    for but in buts:
+        nnbuts = ""
+        ni, nj = but_pos(but, keypad)
+        bounded = True
+        while nj < j:
+            nnbuts += "<"
+            j -= 1
+            bounded &= in_bounds(i, j, keypad)
+        while ni > i:
+            nnbuts += "v"
+            i += 1
+            bounded &= in_bounds(i, j, keypad)
+        while ni < i:
+            nnbuts += "^"
+            i -= 1
+            bounded &= in_bounds(i, j, keypad)
+        while nj > j:
+            nnbuts += ">"
+            j += 1
+            bounded &= in_bounds(i, j, keypad)
+        if not bounded:
+            nnbuts = nnbuts[::-1]
+        nnbuts += "A"
+        nums += press(nnbuts, depth + 1)
+    return nums
+
+
+score = 0
+for code in lines:
+    print("Code", code)
+    topresses = press(code, 0)
+
+    numpart = int("0" + code.replace("A", ""))
+    print(f"{topresses=} * {numpart=}")
+    score += topresses * numpart
+
+print(score)
+
+
+# FOURTH TRY
+
+
+# def press4(buts: str) -> int:
+#     poss = [list(but_pos("A")) for keypad in keypads]
+#     indexes = [0 for _ in keypads]
+#     combis = ["" for _ in keypads]
+#     combis[0] = buts
+#     while indexes[0] != len(buts):
+#         for k in len(keypads):
+#         pass
+#     return 0
+#
+#
+# score = 0
+# for code in lines:
+#     print("Code", code)
+#
+#     topresses = press4(code)
+#
+#     numpart = int("0" + code.replace("A", ""))
+#     print(f"{topresses=} * {numpart=}")
+#     score += topresses * numpart
+#
+# print(score)
+
+sys.exit(0)
+
+# THIRD TRY
+
+
+def press3(buts: str, depth: int) -> typing.Generator[str, None, None]:
+    if depth >= len(keypads):
+        yield from buts
+        return
+
+    keypad = keypads[::-1][depth]
+    but_poss: dict[str, vec] = dict()
+    for i, line in enumerate(keypad):
+        for j, but in enumerate(line):
+            but_poss[but] = i, j
+    i, j = but_poss["A"]
+    ai, ij = but_poss[" "]
+
+    for but in press3(buts, depth + 1):
+        nnbuts = ""
+        ni, nj = but_poss[but]
+        bounded = True
+        if nj < j:
+            nnbuts += "<" * (j - nj)
+            j = nj
+            bounded &= (ai, ij) != (i, j)
+        if ni > i:
+            nnbuts += "v" * (ni - i)
+            i = ni
+            bounded &= (ai, ij) != (i, j)
+        if ni < i:
+            nnbuts += "^" * (i - ni)
+            i = ni
+            bounded &= (ai, ij) != (i, j)
+        if nj > j:
+            nnbuts += ">" * (nj - j)
+            j = nj
+        if not bounded:
+            nnbuts = nnbuts[::-1]
+        nnbuts += "A"
+        yield from nnbuts
+
+
+score = 0
+for code in lines:
+    print("Code", code)
+
+    topresses = 0
+    for _ in press3(code, 0):
+        topresses += 1
+
+    numpart = int("0" + code.replace("A", ""))
+    print(f"{topresses=} * {numpart=}")
+    score += topresses * numpart
+
+print(score)
+
+# SECOND TRY
+
+# # Shouldn't move over the bounds, repeat movements when possible, also use movements
+# # that start further to A then closer to A, because we're going to press A after anyways
+# moves = {
+#     "AA": "",
+#     "A^": "<",
+#     "A>": "v",
+#     "Av": "<v",  # sort
+#     "A<": "v<<",  # hole avoid
+#     "^A": ">",
+#     "^^": "",
+#     "^>": "v>",  # sort
+#     "^v": "v",
+#     "^<": "v<",  # hole avoid
+#     ">A": "^",
+#     ">^": "<^",  # sort
+#     ">>": "",
+#     ">v": "<",
+#     "><": "<<",
+#     "vA": "^>",  # symetric. but lower layer sort!
+#     "v^": "^",
+#     "v>": ">",
+#     "vv": "",
+#     "v<": "<",
+#     "<A": ">>^",  # hole avoid
+#     "<^": ">^",  # hole avoid
+#     "<>": ">>",
+#     "<v": ">",
+#     "<<": "",
+# }
+#
+#
+# def press(buts: str, depth: int) -> str:
+#     if depth == len(keypads):
+#         return buts
+#     keypad = keypads[depth]
+#     numerical = keypad == numeric_keypad
+#     prev_but = "A"
+#     i, j = but_pos(prev_but, keypad)
+#     nbuts = ""
+#     for but in buts:
+#         if numerical:
+#             nnbuts = ""
+#             ni, nj = but_pos(but, keypad)
+#             # right before down
+#             # up before left
+#             bounded = True
+#             while nj < j:
+#                 nnbuts += "<"
+#                 j -= 1
+#                 bounded &= in_bounds(i, j, keypad)
+#             while ni > i:
+#                 nnbuts += "v"
+#                 i += 1
+#                 bounded &= in_bounds(i, j, keypad)
+#             while ni < i:
+#                 nnbuts += "^"
+#                 i -= 1
+#                 bounded &= in_bounds(i, j, keypad)
+#             while nj > j:
+#                 nnbuts += ">"
+#                 j += 1
+#                 bounded &= in_bounds(i, j, keypad)
+#             if not bounded:
+#                 nnbuts = nnbuts[::-1]
+#             nbuts += nnbuts
+#         else:
+#             move = prev_but + but
+#             nbuts += moves[move]
+#         nbuts += "A"
+#         prev_but = but
+#     return press(nbuts, depth + 1)
+#
+#
+# score = 0
+# for code in lines:
+#     print("Code", code)
+#     presses = press(code, 0)
+#     print(f"{presses=}")
+#     topresses = len(presses)
+#
+#     numpart = int("0" + code.replace("A", ""))
+#     print(f"{topresses=} * {numpart=}")
+#     score += topresses * numpart
+#
+# print(score)
+
+# FIRST TRY
+
+# keys = {
+#     "A": "A",
+#     "^": "<A" + ">",
+#     ">": "VA" + "^",
+#     "V": "V<A" + ">^",
+#     "<": "V<<A" + ">>^",
+# }
+#
+# def press(but: str, depth: int) -> str:
+#     if depth <= 0:
+#         return but
+#     depth -= 1
+#     return "".join(press(b, depth) for b in keys[but])
+#
+#
+# res = press("^", complexity)
+# # res += press("A", complexity)
+# print(len(res), res)
diff --git a/2024/21/two_fast.py b/2024/21/two_fast.py
new file mode 100644
index 0000000..f59791c
--- /dev/null
+++ b/2024/21/two_fast.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+import functools
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+numeric_keypad = ["789", "456", "123", " 0A"]
+directional_keypad = [" ^A", "<v>"]
+
+vec = tuple[int, int]
+
+complexity = int(sys.argv[2])
+keypads = [numeric_keypad] + ([directional_keypad] * complexity)
+
+
+@functools.cache
+def press(buts: str, depth: int) -> int:
+    if depth == len(keypads):
+        return len(buts)
+
+    keypad = keypads[depth]
+    but_poss: dict[str, vec] = dict()
+    for i, line in enumerate(keypad):
+        for j, but in enumerate(line):
+            but_poss[but] = i, j
+    i, j = but_poss["A"]
+    ai, aj = but_poss[" "]
+
+    depth += 1
+    nums = 0
+    for but in buts:
+        nnbuts = ""
+        ni, nj = but_poss[but]
+        crossing_gap = ((i == ai) and (nj == aj)) or ((ni == ai) and (j == aj))
+        if nj < j:
+            nnbuts += "<" * (j - nj)
+        if ni < i:
+            nnbuts += "^" * (i - ni)
+        elif ni > i:
+            nnbuts += "v" * (ni - i)
+        if nj > j:
+            nnbuts += ">" * (nj - j)
+        i, j = ni, nj
+        if crossing_gap:
+            nnbuts = nnbuts[::-1]
+        nnbuts += "A"
+        nums += press(nnbuts, depth)
+    return nums
+
+
+score = 0
+for code in lines:
+    print("Code", code)
+    topresses = press(code, 0)
+
+    numpart = int("0" + code.replace("A", ""))
+    print(f"{topresses=} * {numpart=}")
+    score += topresses * numpart
+
+print(score)
diff --git a/2024/22/README.md b/2024/22/README.md
new file mode 100644
index 0000000..36fa2aa
--- /dev/null
+++ b/2024/22/README.md
@@ -0,0 +1,20 @@
+Struggled on the fact that "rounding *down* to the **nearest** integer" doesn't mean `round()` it means `floor()` for part1.
+Got the idea in the back of my mind this is the thing that could be heavily paralellized.
+
+For part2 I found a solution that would take 12h in brute force.
+Removing a list creation I got it down to 3 hours (`two_bf.py`). I let this run in the background.
+Using numpy shenanigans I got it down to 20 minutes.
+It worked before I could do further optimisation.
+
+I have no fucking idea what could be the optimisations here,
+and not super interested in figuring out. I'll spoil myself.
+
+---
+
+OH
+
+🤚: buyer × buyer's sequences
+👉: all possible sequences × buyers
+
+Yeah alright
+
diff --git a/2024/22/one.py b/2024/22/one.py
new file mode 100644
index 0000000..df18a72
--- /dev/null
+++ b/2024/22/one.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+
+def prng(secwet: int) -> int:
+    secwet ^= secwet * 64
+    secwet %= 16777216
+    secwet ^= secwet // 32
+    secwet %= 16777216
+    secwet ^= secwet * 2048
+    secwet %= 16777216
+    return secwet
+
+
+tot = 0
+for line in lines:
+    secwet = int(line)
+    print(f"Init {secwet=}")
+    for i in range(2000):
+        secwet = prng(secwet)
+    print(f" -> {secwet=}")
+    tot += secwet
+print(tot)
diff --git a/2024/22/two.py b/2024/22/two.py
new file mode 100644
index 0000000..b55dc4c
--- /dev/null
+++ b/2024/22/two.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+
+import sys
+
+import numpy as np
+import rich.progress
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+buyers = len(lines)
+
+
+def prng(secwet: int) -> int:
+    secwet ^= secwet * 64
+    secwet %= 16777216
+    secwet ^= secwet // 32
+    secwet %= 16777216
+    secwet ^= secwet * 2048
+    secwet %= 16777216
+    return secwet
+
+
+buyers_ban: list[list[int]] = []
+buyers_dif: list[list[int]] = []
+
+for line in rich.progress.track(lines, description="Calculating future banana prices"):
+    secwet = int(line)
+    buyer_ban: list[int] = []
+    buyer_dif: list[int] = []
+    last_ban = secwet % 10
+    for i in range(2000):
+        secwet = prng(secwet)
+        ban = secwet % 10
+        buyer_ban.append(ban)
+        dif = ban - last_ban
+        buyer_dif.append(dif)
+        last_ban = ban
+    #     print(f"{secwet=} {ban=} {dif=}")
+    # print(f"{buyer_ban=}")
+    # print(f"{buyer_dif=}")
+    buyers_ban.append(buyer_ban)
+    buyers_dif.append(buyer_dif)
+
+buyers_dif_np = np.array(buyers_dif)
+buyers_ban_np = np.array(buyers_ban)
+
+sequence = tuple[int, int, int, int]
+
+
+def totbans(seq: sequence) -> int:
+    match = None
+    for i, num in enumerate(seq):
+        nmatch = buyers_dif_np == num
+        if match is not None:
+            # nmatch = sp.ndimage.shift(nmatch, (0, -i))
+            nmatch = np.roll(nmatch, -i, axis=1)
+            nmatch &= match
+        match = nmatch
+
+    # bans = buyers_ban_np * match
+    # found = match.max(axis=1)
+    # indexes = np.argmax(match > 0, axis=1)
+
+    tot = 0
+    assert match is not None
+    for b, buyer_match in enumerate(match):
+        if not buyer_match.max():
+            continue
+        arg: int = np.argmax(buyer_match > 0)
+        try:
+            ban = buyers_ban_np[b, arg+3]
+            tot += ban
+        except IndexError:
+            pass # shrug
+    return tot
+
+    for buyer in range(buyers):
+        buyer_dif = buyers_dif[buyer]
+        for i in range(2000 - 4):
+            if (
+                buyer_dif[i] == seq[0]
+                and buyer_dif[i + 1] == seq[1]
+                and buyer_dif[i + 2] == seq[2]
+                and buyer_dif[i + 3] == seq[3]
+            ):
+                # if tuple(buyer_dif[i : i + 4]) == seq:
+                tot += buyers_ban[buyer][i + 3]
+                break
+    return tot
+
+
+# print(f"{totbans((6, -1, -1, 0))=}") # demo0
+# print(f"{totbans((-2, 1, -1, 3))=}") # demo2 aoc
+# print(f"{totbans((6, -4, 4, -9))=}") # demo2 first
+
+all_seqs: set[sequence] = set()
+
+for buyer in rich.progress.track(
+    range(buyers), description="Generating possible sequences"
+):
+    buyer_dif = buyers_dif[buyer]
+    for i in range(2000 - 4):
+        seq: sequence = tuple(buyer_dif[i : i + 4])
+        all_seqs.add(seq)
+print(f"{len(all_seqs)=}")
+
+maxi = 0
+max_seq = None
+for seq in rich.progress.track(all_seqs, description="Finding score for sequences"):
+    tb = totbans(seq)
+    if tb > maxi:
+        maxi = tb
+        max_seq = seq
+
+
+print(f"{max_seq=}")
+print(maxi)
+# 1909 too low
diff --git a/2024/22/two_bf.py b/2024/22/two_bf.py
new file mode 100644
index 0000000..96bbe2a
--- /dev/null
+++ b/2024/22/two_bf.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python3
+
+import sys
+
+import rich.progress
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+buyers = len(lines)
+
+
+def prng(secwet: int) -> int:
+    secwet ^= secwet * 64
+    secwet %= 16777216
+    secwet ^= secwet // 32
+    secwet %= 16777216
+    secwet ^= secwet * 2048
+    secwet %= 16777216
+    return secwet
+
+
+buyers_ban: list[list[int]] = []
+buyers_dif: list[list[int]] = []
+
+for line in rich.progress.track(lines, description="Calculating future banana prices"):
+    secwet = int(line)
+    buyer_ban: list[int] = []
+    buyer_dif: list[int] = []
+    last_ban = secwet % 10
+    for i in range(2000):
+        secwet = prng(secwet)
+        ban = secwet % 10
+        buyer_ban.append(ban)
+        dif = ban - last_ban
+        buyer_dif.append(dif)
+        last_ban = ban
+    #     print(f"{secwet=} {ban=} {dif=}")
+    # print(f"{buyer_ban=}")
+    # print(f"{buyer_dif=}")
+    buyers_ban.append(buyer_ban)
+    buyers_dif.append(buyer_dif)
+
+sequence = tuple[int, int, int, int]
+
+
+def totbans(seq: sequence) -> int:
+    tot = 0
+    for buyer in range(buyers):
+        buyer_dif = buyers_dif[buyer]
+        for i in range(2000 - 4):
+            if (
+                buyer_dif[i] == seq[0]
+                and buyer_dif[i + 1] == seq[1]
+                and buyer_dif[i + 2] == seq[2]
+                and buyer_dif[i + 3] == seq[3]
+            ):
+                # if tuple(buyer_dif[i : i + 4]) == seq:
+                tot += buyers_ban[buyer][i + 3]
+                break
+    return tot
+
+
+all_seqs: set[sequence] = set()
+
+for buyer in rich.progress.track(
+    range(buyers), description="Generating possible sequences"
+):
+    buyer_dif = buyers_dif[buyer]
+    for i in range(2000 - 4):
+        seq: sequence = tuple(buyer_dif[i : i + 4])
+        all_seqs.add(seq)
+print(f"{len(all_seqs)=}")
+
+maxi = 0
+max_seq = None
+for seq in rich.progress.track(all_seqs, description="Finding score for sequences"):
+    tb = totbans(seq)
+    if tb > maxi:
+        maxi = tb
+        max_seq = seq
+
+
+print(f"{max_seq=}")
+print(maxi)
diff --git a/2024/22/two_fast.py b/2024/22/two_fast.py
new file mode 100644
index 0000000..3789c14
--- /dev/null
+++ b/2024/22/two_fast.py
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+
+import collections
+import math
+import sys
+
+import numpy as np
+import rich.progress
+
+dtype = np.int32
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    buyers_init_secret = np.array([int(line) for line in fd.readlines()], dtype=dtype)
+
+buyers = len(buyers_init_secret)
+
+ITERATIONS = 2000
+SEQUENCE_LENGTH = 4
+
+
+buyers_prices = np.ndarray((buyers, ITERATIONS), dtype=dtype)
+buyers_diffs = np.ndarray((buyers, ITERATIONS), dtype=dtype)
+
+buyers_secret = buyers_init_secret.copy()
+last_buyers_price = buyers_init_secret % 10
+for i in rich.progress.track(range(ITERATIONS), description="Simulating stock market"):
+    buyers_secret ^= buyers_secret * 64
+    buyers_secret %= 16777216
+    buyers_secret ^= buyers_secret // 32
+    buyers_secret %= 16777216
+    buyers_secret ^= buyers_secret * 2048
+    buyers_secret %= 16777216
+    buyers_price = buyers_secret % 10
+    buyers_diff = buyers_price - last_buyers_price
+    buyers_prices[:, i] = buyers_price
+    buyers_diffs[:, i] = buyers_diff
+    last_buyers_price = buyers_price
+
+# Compress sequence tuples into a single integer
+
+# Move to positive numbers
+trans = -buyers_diffs.min()
+buyers_diffs_translated = buyers_diffs + trans
+# Decide on a value to shift
+shift = math.ceil(math.log2(buyers_diffs_translated.max()))
+
+buyers_sequences = buyers_diffs_translated.copy()
+for i in range(1, SEQUENCE_LENGTH):
+    buyers_sequences += np.roll(buyers_diffs_translated << (shift * i), i, axis=1)
+# Make first few sequences invalid
+buyers_sequences[:, :SEQUENCE_LENGTH] = -1
+
+# NEW (knowing it's best to iterate per buyer than per sequence) ~ 5 seconds
+# Inspired by the following, which is even faster, probably because data locality
+# achieves more than SIMD-fying?
+# https://github.com/mkern75/AdventOfCodePython/blob/23b6becdc873c6b865e783122a7dbce0b5f40f60/year2024/Day22.py
+
+max_sequence = 1 << shift * SEQUENCE_LENGTH
+sequences_total = np.zeros(max_sequence, dtype=dtype)
+seen = np.zeros((buyers, max_sequence), dtype=bool)
+
+for b in rich.progress.track(range(buyers), description="Evaluating each buyer"):
+    for i in range(SEQUENCE_LENGTH, ITERATIONS):
+        seq = buyers_sequences[b, i]
+
+        if seen[b, seq]:
+            continue
+        seen[b, seq] = True
+
+        sequences_total[seq] += buyers_prices[b, i]
+
+print(f"{sequences_total.argmax()=}")
+print(sequences_total.max())
+
+sys.exit(0)
+
+# OLD (knowing you can compresses sequences only) ~ 1.5 minute
+
+
+def totbans(seq: int) -> int:
+    match = buyers_sequences == seq
+    found = match.max(axis=1)
+    indexes = np.argmax(match, axis=1)
+    bans = buyers_prices[range(buyers), indexes]
+    bans *= found
+    return bans.sum()
+
+
+def seq_to_int(seq: tuple[int, ...]) -> int:
+    tot = 0
+    for s, num in enumerate(seq):
+        tot += (num + trans) << (SEQUENCE_LENGTH - s - 1) * shift
+    return tot
+
+
+print(f"{totbans(seq_to_int((-2, 1, -1, 3)))=}")
+
+all_seqs: set[int] = set(buyers_sequences.flat) - {-1}
+
+maxi = 0
+max_seq = None
+for seq in rich.progress.track(all_seqs, description="Finding score for sequences"):
+    tb = totbans(seq)
+    if tb > maxi:
+        maxi = tb
+        max_seq = seq
+
+
+print(f"{max_seq=}")
+print(maxi)
diff --git a/2024/23/both_networkx.py b/2024/23/both_networkx.py
new file mode 100644
index 0000000..01157c9
--- /dev/null
+++ b/2024/23/both_networkx.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+
+import sys
+
+import matplotlib.pyplot as plt
+import networkx
+import networkx as nx
+
+input_file = sys.argv[1]
+
+G = nx.Graph()
+with open(input_file) as fd:
+    for line in fd.readlines():
+        a, b = line.rstrip().split("-")
+        G.add_edge(a, b)
+
+trio_cliques: list[list[str]] = list()
+lan = None
+for clique in nx.enumerate_all_cliques(G):
+    if lan is None or len(clique) > len(lan):
+        lan = clique
+    if len(clique) != 3:
+        continue
+    if not any(c.startswith("t") for c in clique):
+        continue
+    trio_cliques.append(clique)
+
+
+part1_ans = len(trio_cliques)
+assert lan is not None
+part2_ans = ",".join(sorted(lan))
+
+print(f"{part1_ans=}")
+print(f"{part2_ans=}")
+
+
+trio_nodes = set(node for trio_clique in trio_cliques for node in trio_clique)
+trio_edges = set(
+    edge
+    for clique in trio_cliques
+    for edge in list(nx.edge_boundary(G, clique, clique))
+)
+lan_edges = set(nx.edge_boundary(G, lan, lan))
+
+for node in trio_nodes:
+    G.nodes[node]["color"] = "green"
+for edge in trio_edges:
+    G.edges[edge]["color"] = "green"
+    G.edges[edge]["weight"] = 2
+
+for node in lan:
+    G.nodes[node]["color"] = "red"
+for edge in lan_edges:
+    # G.edges[edge]["color"] = "red"
+    G.edges[edge]["weight"] = 5
+
+node_colors = [G.nodes[node].get("color", "blue") for node in G.nodes()]
+edge_colors = [G.edges[edge].get("color", "blue") for edge in G.edges()]
+node_pos = nx.layout.spring_layout(G)
+
+
+nx.draw(
+    G, node_color=node_colors, edge_color=edge_colors, pos=node_pos, with_labels=True
+)
+plt.show()
diff --git a/2024/23/one.py b/2024/23/one.py
new file mode 100644
index 0000000..f5803bd
--- /dev/null
+++ b/2024/23/one.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python3
+
+import collections
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+connections = [tuple(line.split("-")) for line in lines]
+
+codi: collections.defaultdict[str, set[str]] = collections.defaultdict(set)
+
+for connection in connections:
+    a, b = connection
+    codi[a].add(b)
+    codi[b].add(a)
+
+threes: set[tuple[str, ...]] = set()
+for connection in connections:
+    a, b = connection
+    ac, bc = codi[a], codi[b]
+    iis = ac.intersection(bc)
+    for i in iis:
+        threel = [a, b, i]
+        if not (a.startswith("t") or b.startswith("t") or i.startswith("t")):
+            continue
+        threel.sort()
+        threes.add(tuple(threel))
+
+for three in threes:
+    print(three)
+
+print(len(threes))
+# 11011 too high (forgot starts with t)
diff --git a/2024/23/two.py b/2024/23/two.py
new file mode 100644
index 0000000..eef61f6
--- /dev/null
+++ b/2024/23/two.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+import collections
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+connections = [set(line.split("-")) for line in lines]
+
+codi: collections.defaultdict[str, set[str]] = collections.defaultdict(set)
+
+for connection in connections:
+    a, b = connection
+    codi[a].add(b)
+    codi[b].add(a)
+
+threes: set[tuple[str, ...]] = set()
+for connection in connections:
+    a, b = connection
+    ac, bc = codi[a], codi[b]
+    iis = ac.intersection(bc)
+    for i in iis:
+        threel = [a, b, i]
+        threel.sort()
+        threes.add(tuple(threel))
+
+j = 0
+while len(threes) > 1:
+
+    inthrees: set[str] = set()
+    for three in threes:
+        inthrees.update(set(three))
+
+    print(j, len(threes), len(inthrees))
+
+    fours: set[tuple[str, ...]] = set()
+    for three in threes:
+        threeset = set(three)
+        for comp in inthrees - threeset:
+            compc = codi[comp]
+            if threeset.issubset(compc):
+                fourl = list(threeset) + [comp]
+                fourl.sort()
+                fours.add(tuple(fourl))
+
+    threes = fours
+
+threesl = list(threes)
+if len(threesl) == 1:
+    three = threesl[0]
+    print(",".join(three))
+print(None)
diff --git a/2024/24/one.py b/2024/24/one.py
new file mode 100644
index 0000000..5a7c026
--- /dev/null
+++ b/2024/24/one.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+
+import functools
+import sys
+import typing
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+gates: dict[str, tuple[str, typing.Callable, str]] = dict()
+varis: dict[str, int] = dict()
+funs = {
+    "AND": int.__and__,
+    "OR": int.__or__,
+    "XOR": int.__xor__,
+}
+
+step = False
+for line in lines:
+    if not line:
+        step = True
+    elif step:
+        a, op, b, _, dest = line.split()
+        fun = funs[op]
+        gates[dest] = (a, fun, b)
+    else:
+        dest, val = line.split(":")
+        varis[dest] = int(val)
+
+
+@functools.cache
+def get_var(var: str) -> int:
+    if var in varis:
+        return varis[var]
+    a, fun, b = gates[var]
+    avar = get_var(a)
+    bvar = get_var(b)
+    return fun(avar, bvar)
+
+
+zees = sorted([key for key in gates.keys() if key.startswith("z")])
+bits = reversed([str(get_var(key)) for key in zees])
+res = int("".join(bits), base=2)
+
+print(res)
diff --git a/2024/24/two.py b/2024/24/two.py
new file mode 100644
index 0000000..f7456d5
--- /dev/null
+++ b/2024/24/two.py
@@ -0,0 +1,161 @@
+#!/usr/bin/env python3
+
+import functools
+import sys
+import typing
+
+import matplotlib.pyplot as plt
+import networkx as nx
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+gates: dict[str, tuple[str, typing.Callable, str]] = dict()
+varis: dict[str, int] = dict()
+funs = {
+    "AND": int.__and__,  # orange
+    "OR": int.__or__,  # green
+    "XOR": int.__xor__,  # purple
+}
+G = nx.DiGraph()
+
+swaps = [
+    ("ncd", "nfj"),
+    ("z37", "vkg"),
+    ("z20", "cqr"),
+    ("z15", "qnw"),
+]
+swapdict: dict[str, str] = dict()
+for a, b in swaps:
+    swapdict[a] = b
+    swapdict[b] = a
+
+step = False
+for line in lines:
+    if not line:
+        step = True
+    elif step:
+        a, op, b, _, dest = line.split()
+        dest = swapdict.get(dest, dest)
+        fun = funs[op]
+        gates[dest] = (a, fun, b)
+        G.add_node(dest, op=op)
+        G.add_edge(a, dest)
+        G.add_edge(b, dest)
+    else:
+        dest, val = line.split(":")
+        varis[dest] = int(val)
+
+
+def swap(a: str, b: str) -> None:
+    temp = gates[a]
+    gates[a] = gates[b]
+    gates[b] = temp
+
+
+@functools.cache
+def get_var(var: str) -> int:
+    if var in varis:
+        return varis[var]
+    a, fun, b = gates[var]
+    avar = get_var(a)
+    bvar = get_var(b)
+    return fun(avar, bvar)
+
+
+all_keys = list(gates.keys()) + list(varis.keys())
+all_keys.sort(reverse=True)
+
+
+def get_number(prefix: str) -> int:
+    tot = 0
+    keys = [key for key in all_keys if key.startswith(prefix)]
+    for key in keys:
+        tot <<= 1
+        tot |= get_var(key)
+    return tot
+
+
+X = get_number("x")
+Y = get_number("y")
+Z = get_number("z")
+print(f"{X+Y=} = {X=} + {Y=}")
+print(f"  {Z=} {Z == X + Y=}")
+
+print(",".join(sorted(swapdict.keys())))
+
+# Viz
+
+
+@functools.cache
+def get_node_pos(node: str) -> tuple[float, float]:
+    x: float
+    y: float
+    if node.startswith("x"):
+        x = -int(node[1:]) * 2
+        y = 0
+    elif node.startswith("y"):
+        x = -int(node[1:]) * 2 - 1
+        y = 0
+    elif node.startswith("z"):
+        x = -int(node[1:]) * 2
+        y = 100
+    else:
+        a, _, b = gates[node]
+        ax, ay = get_node_pos(a)
+        bx, by = get_node_pos(b)
+        x = (ax + bx) / 2
+        y = max(ay, by) + 1
+    return x, y
+
+
+colors = {
+    "AND": "orange",
+    "OR": "green",
+    "XOR": "purple",
+}
+node_colors = []
+node_pos: dict[str, tuple[float, float]] = dict()
+node_fixed: set[str] = set()
+for node in G.nodes():
+    op = G.nodes[node].get("op")
+    node_colors.append(colors.get(op, "cyan" if node.startswith("x") else "blue"))
+
+    x: float
+    y: float
+    fixed = True
+    if node.startswith("x"):
+        x = -int(node[1:]) * 2
+        y = 0
+    elif node.startswith("y"):
+        x = -int(node[1:]) * 2 - 1
+        y = 0
+    elif node.startswith("z"):
+        x = -int(node[1:]) * 2
+        y = 50
+    else:
+        fixed = False
+        x = -23
+        y = 25
+
+    node_pos[node] = x, y
+    if fixed:
+        node_fixed.add(node)
+
+# My own layout
+for i in range(50):
+    for node in G.nodes():
+        if node in node_fixed:
+            continue
+        neighs = list(G.succ[node]) + list(G.pred[node])
+        x = sum(node_pos[neigh][0] for neigh in neighs) / len(neighs)
+        y = sum(node_pos[neigh][1] for neigh in neighs) / len(neighs)
+        node_pos[node] = x, y
+node_fixed = set(G.nodes())
+
+node_layout = nx.layout.spring_layout(G, pos=node_pos, fixed=node_fixed)
+
+nx.draw(G, pos=node_layout, node_color=node_colors, with_labels=True)
+plt.show()
diff --git a/2024/24/two_test.py b/2024/24/two_test.py
new file mode 100644
index 0000000..d76b70c
--- /dev/null
+++ b/2024/24/two_test.py
@@ -0,0 +1,163 @@
+#!/usr/bin/env python3
+
+import functools
+import sys
+import typing
+
+import matplotlib.pyplot as plt
+import networkx as nx
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+gates: dict[str, tuple[str, typing.Callable, str]] = dict()
+varis: dict[str, int] = dict()
+funs = {
+    "AND": int.__and__,  # orange
+    "OR": int.__or__,  # green
+    "XOR": int.__xor__,  # purple
+}
+G = nx.DiGraph()
+
+swaps = [
+    # ("ncd", "nfj"),
+    # ("z37", "vkg"),
+    # ("z20", "cqr"),
+    # ("z15", "qnw"),
+]
+swapdict: dict[str, str] = dict()
+for a, b in swaps:
+    swapdict[a] = b
+    swapdict[b] = a
+
+step = False
+for line in lines:
+    if not line:
+        step = True
+    elif step:
+        a, op, b, _, dest = line.split()
+        dest = swapdict.get(dest, dest)
+        fun = funs[op]
+        gates[dest] = (a, fun, b)
+        G.add_node(dest, op=op)
+        G.add_edge(a, dest)
+        G.add_edge(b, dest)
+    else:
+        dest, val = line.split(":")
+        varis[dest] = int(val)
+
+
+def swap(a: str, b: str) -> None:
+    temp = gates[a]
+    gates[a] = gates[b]
+    gates[b] = temp
+
+
+@functools.cache
+def get_var(var: str) -> int:
+    if var in varis:
+        return varis[var]
+    a, fun, b = gates[var]
+    avar = get_var(a)
+    bvar = get_var(b)
+    return fun(avar, bvar)
+
+
+all_keys = list(gates.keys()) + list(varis.keys())
+all_keys.sort(reverse=True)
+
+
+def get_number(prefix: str) -> int:
+    tot = 0
+    keys = [key for key in all_keys if key.startswith(prefix)]
+    for key in keys:
+        tot <<= 1
+        tot |= get_var(key)
+    return tot
+
+
+X = get_number("x")
+Y = get_number("y")
+Z = get_number("z")
+print(f"{X+Y=} = {X=} + {Y=}")
+print(f"  {Z=} {Z == X + Y=}")
+
+print(",".join(sorted(swapdict.keys())))
+
+# Viz
+
+
+@functools.cache
+def get_node_pos(node: str) -> tuple[float, float]:
+    x: float
+    y: float
+    if node.startswith("x"):
+        x = -int(node[1:]) * 2
+        y = 0
+    elif node.startswith("y"):
+        x = -int(node[1:]) * 2 - 1
+        y = 0
+    elif node.startswith("z"):
+        x = -int(node[1:]) * 2
+        y = 100
+    else:
+        a, _, b = gates[node]
+        ax, ay = get_node_pos(a)
+        bx, by = get_node_pos(b)
+        x = (ax + bx) / 2
+        y = max(ay, by) + 1
+    return x, y
+
+
+colors = {
+    "AND": "orange",
+    "OR": "green",
+    "XOR": "purple",
+}
+node_colors = []
+node_pos: dict[str, tuple[float, float]] = dict()
+node_fixed: set[str] = set()
+for node in G.nodes():
+    op = G.nodes[node].get("op")
+    node_colors.append(colors.get(op, "cyan" if node.startswith("x") else "blue"))
+
+    x: float
+    y: float
+    fixed = True
+    if node.startswith("x"):
+        x = -int(node[1:]) * 2
+        y = 0
+    elif node.startswith("y"):
+        x = -int(node[1:]) * 2 - 1
+        y = 0
+    elif node.startswith("z"):
+        x = -int(node[1:]) * 2
+        y = 50
+    else:
+        fixed = False
+        x = -23
+        y = 25
+
+    node_pos[node] = x, y
+    if fixed:
+        node_fixed.add(node)
+
+# # My own layout
+# for i in range(50):
+#     for node in G.nodes():
+#         if node in node_fixed:
+#             continue
+#         neighs = list(G.succ[node]) + list(G.pred[node])
+#         x = sum(node_pos[neigh][0] for neigh in neighs) / len(neighs)
+#         y = sum(node_pos[neigh][1] for neigh in neighs) / len(neighs)
+#         node_pos[node] = x, y
+# node_fixed = set(G.nodes())
+
+node_layout = nx.layout.spring_layout(
+    G.to_undirected(), k=1, iterations=1000, pos=node_pos, fixed=node_fixed
+)
+
+nx.draw(G, pos=node_layout, node_color=node_colors, with_labels=True)
+plt.show()
diff --git a/2024/25/one.py b/2024/25/one.py
new file mode 100644
index 0000000..d8b1804
--- /dev/null
+++ b/2024/25/one.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+lockey = tuple[int, int, int, int, int]
+locks: list[lockey] = list()
+keys: list[lockey] = list()
+
+i = 0
+for line in lines:
+    if not line:
+        i = 0
+    elif i == 0:
+        is_lock = line == "#####"
+        i = 1
+        sharps = [0, 0, 0, 0, 0]
+    elif i == 6:
+        if is_lock:
+            locks.append(tuple(sharps))
+        else:
+            keys.append(tuple(sharps))
+    else:
+        for j in range(5):
+            if line[j] == "#":
+                sharps[j] += 1
+        i += 1
+
+print(locks)
+print(keys)
+
+fit = 0
+for lock in locks:
+    for key in keys:
+        print(39, lock, key)
+        for i in range(5):
+            if lock[i] + key[i] > 5:
+                break
+        else:
+            fit += 1
+print(fit)
diff --git a/2024/3/one.py b/2024/3/one.py
new file mode 100644
index 0000000..4460641
--- /dev/null
+++ b/2024/3/one.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+
+import sys
+import re
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+t = 0
+reg = r"mul\(([0-9]+),([0-9]+)\)"
+for line in lines:
+    for match in re.findall(reg, line):
+        ast, bst = match
+        a, b = int(ast), int(bst)
+        m = a * b
+        t += m
+print(t)
diff --git a/2024/3/two.py b/2024/3/two.py
new file mode 100644
index 0000000..bfc2c33
--- /dev/null
+++ b/2024/3/two.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+
+import sys
+import re
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+t = 0
+en = True
+reg = r"mul\(([0-9]+),([0-9]+)\)|do\(\)|don't\(\)"
+for line in lines:
+    for match in re.finditer(reg, line):
+        all = match.group(0)
+        if all == "do()":
+            en = True
+        elif all == "don't()":
+            en = False
+        elif en:
+            ast, bst = match.group(1), match.group(2)
+            a, b = int(ast), int(bst)
+            m = a * b
+            t += m
+print(t)
diff --git a/2024/4/one.py b/2024/4/one.py
new file mode 100644
index 0000000..c545e2f
--- /dev/null
+++ b/2024/4/one.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+word = "XMAS"
+
+directions = [
+    (0, 1),
+    (1, 1),
+    (1, 0),
+    (1, -1),
+    (0, -1),
+    (-1, -1),
+    (-1, 0),
+    (-1, 1),
+]
+
+arrows = ["➡️", "↘️", "⬇️", "↙️", "⬅️", "↖️", "⬆️", "↗️"]
+
+assert len(directions) == len(set(directions))
+
+
+viz = [["."] * width for i in range(height)]
+
+count = 0
+for i in range(height):
+    for j in range(width):
+        for direction in directions:
+            ii = i
+            jj = j
+            for letter in word:
+                if (
+                    ii not in range(height)
+                    or jj not in range(width)
+                    or lines[ii][jj] != letter
+                ):
+                    break
+                ii += direction[0]
+                jj += direction[1]
+            else:
+                count += 1
+                # d = directions.index(direction)
+                # viz[i][j] = arrows[d]
+                ii = i
+                jj = j
+                for letter in word:
+                    viz[ii][jj] = letter
+                    ii += direction[0]
+                    jj += direction[1]
+for line in viz:
+    print("".join(line))
+print(count)
diff --git a/2024/4/two.py b/2024/4/two.py
new file mode 100644
index 0000000..41ada97
--- /dev/null
+++ b/2024/4/two.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+count = 0
+for i in range(1, height - 1):
+    for j in range(1, width - 1):
+        if lines[i][j] != "A":
+            continue
+        tl = lines[i - 1][j - 1]
+        br = lines[i + 1][j + 1]
+        tr = lines[i - 1][j + 1]
+        bl = lines[i + 1][j - 1]
+        if not ((tl, br) == ("M", "S") or (tl, br) == ("S", "M")) or not (
+            (tr, bl) == ("M", "S") or (tr, bl) == ("S", "M")
+        ):
+            continue
+        count += 1
+print(count)
diff --git a/2024/5/one.py b/2024/5/one.py
new file mode 100644
index 0000000..8b4fcf9
--- /dev/null
+++ b/2024/5/one.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+page_mode = False
+orders: list[tuple[int, int]] = list()
+updates: list[list[int]] = list()
+
+for line in lines:
+    if not page_mode:
+        if line == "":
+            page_mode = True
+        else:
+            order = tuple(int(a) for a in line.split("|"))
+            assert len(order) == 2
+            orders.append(order)
+    else:
+        update = list(int(a) for a in line.split(","))
+        updates.append(update)
+
+total = 0
+for update in updates:
+    for fi, se in orders:
+        try:
+            ifi = update.index(fi)
+            ise = update.index(se)
+        except ValueError:
+            continue
+        if ifi > ise:
+            break
+    else:
+        imid = int(len(update)/2)
+        mid = update[imid]
+        total += mid
+print(total)
+
diff --git a/2024/5/two.py b/2024/5/two.py
new file mode 100644
index 0000000..b20b0fe
--- /dev/null
+++ b/2024/5/two.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+page_mode = False
+orders: list[tuple[int, int]] = list()
+
+class Page:
+    def __init__(self, pn: int):
+        self.pn = pn
+
+    def __lt__(self, other: "Page") -> bool:
+        a = self.pn
+        b = other.pn
+        for fi, se in orders:
+            if a == fi and b == se:
+                return True
+            elif a == se and b == fi:
+                return False
+        raise RuntimeError
+
+
+updates: list[list[Page]] = list()
+
+for line in lines:
+    if not page_mode:
+        if line == "":
+            page_mode = True
+        else:
+            order = tuple(int(a) for a in line.split("|"))
+            assert len(order) == 2
+            orders.append(order)
+    else:
+        update = list(Page(int(a)) for a in line.split(","))
+        updates.append(update)
+
+total = 0
+for update in updates:
+    update_sorted = sorted(update)
+
+    if update == update_sorted:
+        continue
+
+    update = update_sorted
+
+    # Add
+    imid = int(len(update)/2)
+    mid = update[imid]
+    total += mid.pn
+
+print(total)
+
diff --git a/2024/6/one.py b/2024/6/one.py
new file mode 100644
index 0000000..3fb7e49
--- /dev/null
+++ b/2024/6/one.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+for i in range(height):
+    if "^" in lines[i]:
+        j = lines[i].index("^")
+        break
+
+d = 0
+directions = [
+    (-1, 0),  # ^
+    (0, 1),  # >
+    (1, 0),  # v
+    (0, -1),  # <
+]
+
+vis = [[False] * width for h in range(height)]
+
+while True:
+    print(i, j)
+    vis[i][j] = True
+    ii, jj = i + directions[d][0], j + directions[d][1]
+    if ii not in range(height) or jj not in range(width):
+        break
+    if lines[ii][jj] == "#":
+        d += 1
+        d %= len(directions)
+        continue
+    i, j = ii, jj
+
+count = 0
+for i in range(height):
+    for j in range(width):
+        if vis[i][j]:
+            count += 1
+print(count)
+
+
diff --git a/2024/6/two.py b/2024/6/two.py
new file mode 100644
index 0000000..53060f2
--- /dev/null
+++ b/2024/6/two.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+for i_start in range(height):
+    if "^" in lines[i_start]:
+        j_start = lines[i_start].index("^")
+        break
+
+directions = [
+    (-1, 0),  # ^
+    (0, 1),  # >
+    (1, 0),  # v
+    (0, -1),  # <
+]
+
+positions: set[tuple[int, int]] = set()
+
+i, j = i_start, j_start
+d = 0
+
+while True:
+    positions.add((i, j))
+    ii, jj = i + directions[d][0], j + directions[d][1]
+    if ii not in range(height) or jj not in range(width):
+        break
+    if lines[ii][jj] == "#":
+        d += 1
+        d %= len(directions)
+        continue
+    i, j = ii, jj
+
+print(len(positions))
+positions.remove((i_start, j_start))
+
+tot = 0
+for obstacle in positions:
+    i, j = i_start, j_start
+    d = 0
+    path: set[tuple[int, int, int]] = set()
+
+    while True:
+        state = (i, j, d)
+        if state in path:
+            loop = True
+            tot += 1
+            break
+        path.add(state)
+        ii, jj = i + directions[d][0], j + directions[d][1]
+        if ii not in range(height) or jj not in range(width):
+            loop = False
+            break
+        if lines[ii][jj] == "#" or (ii, jj) == obstacle:
+            d += 1
+            d %= len(directions)
+            continue
+        i, j = ii, jj
+
+print(tot)
diff --git a/2024/7/one.py b/2024/7/one.py
new file mode 100644
index 0000000..a975fca
--- /dev/null
+++ b/2024/7/one.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+final = 0
+for line in lines:
+    spli = line.split()
+    res = int(spli[0][:-1])
+    nums = [int(num) for num in spli[1:]]
+
+    def check(tot: int, nums: list[int]) -> bool:
+        for op in (int.__add__, int.__mul__):
+            ntot = op(tot, nums[0])
+            if ntot > res:
+                continue
+            if len(nums) == 1:
+                if ntot == res:
+                    return True
+            else:
+                if check(ntot, nums[1:]):
+                    return True
+        return False
+
+    if check(nums[0], nums[1:]):
+        final += res
+
+print(final)
+
+# 2664444091381: too low
diff --git a/2024/7/two.py b/2024/7/two.py
new file mode 100644
index 0000000..8c90d5d
--- /dev/null
+++ b/2024/7/two.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+
+def concat(a: int, b: int) -> int:
+    return int(str(a) + str(b))
+
+
+final = 0
+for line in lines:
+    spli = line.split()
+    res = int(spli[0][:-1])
+    nums = [int(num) for num in spli[1:]]
+
+    def check(tot: int, nums: list[int]) -> bool:
+        for op in (int.__add__, int.__mul__, concat):
+            ntot = op(tot, nums[0])
+            if ntot > res:
+                continue
+            if len(nums) == 1:
+                if ntot == res:
+                    return True
+            else:
+                if check(ntot, nums[1:]):
+                    return True
+        return False
+
+    if check(nums[0], nums[1:]):
+        final += res
+
+print(final)
diff --git a/2024/8/one.py b/2024/8/one.py
new file mode 100644
index 0000000..7f66364
--- /dev/null
+++ b/2024/8/one.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+antennas: dict[str, list[tuple[int, int]]] = dict()
+
+for i in range(height):
+    for j in range(width):
+        char = lines[i][j]
+        if char == ".":
+            continue
+        antennas.setdefault(char, list())
+        antennas[char].append((i, j))
+
+antinodes_locations: set[tuple[int, int]] = set()
+for char, char_antennas in antennas.items():
+    print(f"25 {char} {char_antennas}")
+    for ant_a in char_antennas:
+        for ant_b in char_antennas:
+            if ant_a == ant_b:
+                continue
+            i, j = 2 * ant_b[0] - ant_a[0], 2 * ant_b[1] - ant_a[1]
+            antinode_loc = i, j
+            print(f"30 {antinode_loc}")
+            if i not in range(height) or j not in range(width):
+                continue
+            print(f"kept")
+            antinodes_locations.add(antinode_loc)
+
+print(len(antinodes_locations))
diff --git a/2024/8/two.py b/2024/8/two.py
new file mode 100644
index 0000000..0f147dc
--- /dev/null
+++ b/2024/8/two.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
+
+antennas: dict[str, list[tuple[int, int]]] = dict()
+
+viz = [["."] * width for _ in range(height)]
+
+for i in range(height):
+    for j in range(width):
+        char = lines[i][j]
+        if char == ".":
+            continue
+        antennas.setdefault(char, list())
+        antennas[char].append((i, j))
+        viz[i][j] = char
+
+antinodes_locations: set[tuple[int, int]] = set()
+for char, char_antennas in antennas.items():
+    print(f"25 {char} {char_antennas}")
+    for ant_a in char_antennas:
+        for ant_b in char_antennas:
+            if ant_a == ant_b:
+                continue
+            m = 0
+            while True:
+                i, j = ant_b[0] + m * (ant_b[0] - ant_a[0]), ant_b[1] + m * (
+                    ant_b[1] - ant_a[1]
+                )
+                antinode_loc = i, j
+                print(f"30 {antinode_loc}")
+                if i not in range(height) or j not in range(width):
+                    break
+                print("kept")
+                antinodes_locations.add(antinode_loc)
+                viz[i][j] = "#"
+                m += 1
+for vline in viz:
+    print("".join(vline))
+
+print(len(antinodes_locations))
diff --git a/2024/9/one.py b/2024/9/one.py
new file mode 100644
index 0000000..8ac3129
--- /dev/null
+++ b/2024/9/one.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+line = lines[0]
+
+disk: list[int | None] = list()
+
+fileno = 0
+isfile = True
+for char in line:
+    n = int(char)
+    if isfile:
+        disk += [fileno] * n
+        fileno += 1
+    else:
+        disk += [None] * n
+    isfile = not isfile
+
+beg = 0
+end = len(disk) - 1
+
+
+def print_disk() -> None:
+    return
+    print("".join(str(c) if c is not None else "." for c in disk))
+
+
+print_disk()
+moving = False
+while beg < end:
+    if moving:
+        if disk[end] is not None:
+            disk[beg] = disk[end]
+            disk[end] = None
+            moving = False
+            print_disk()
+        end -= 1
+    else:
+        if disk[beg] is None:
+            moving = True
+        else:
+            beg += 1
+
+checksum = 0
+for c, cid in enumerate(disk):
+    if cid is not None:
+        checksum += c * cid
+
+print(checksum)
diff --git a/2024/9/two.py b/2024/9/two.py
new file mode 100644
index 0000000..d3d3192
--- /dev/null
+++ b/2024/9/two.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+line = lines[0]
+
+disk: list[int | None] = list()
+# position, size
+index: list[tuple[int, int]] = list()
+
+fileno = 0
+isfile = True
+for char in line:
+    n = int(char)
+    if isfile:
+        index.append((len(disk), n))
+        disk += [fileno] * n
+        fileno += 1
+    else:
+        disk += [None] * n
+    isfile = not isfile
+
+beg = 0
+end = len(disk) - 1
+
+
+def print_disk() -> None:
+    return
+    print("".join(str(c) if c is not None else "." for c in disk))
+
+
+print_disk()
+
+for pos, size in index[::-1]:
+    hole_start = None
+    for c, cid in enumerate(disk + [-1]):
+        if c > pos + size:
+            break
+        if cid is None:
+            if hole_start is None:
+                hole_start = c
+        else:
+            if hole_start is not None:
+                hole_size = c - hole_start
+                if hole_size < size:
+                    hole_start = None
+                    continue
+                for i in range(size):
+                    disk[hole_start + i] = disk[pos + i]
+                    disk[pos + i] = None
+                print_disk()
+                break
+
+checksum = 0
+for c, cid in enumerate(disk):
+    if cid is not None:
+        checksum += c * cid
+
+print(checksum)
diff --git a/2024/X/one.py b/2024/X/one.py
new file mode 100644
index 0000000..df5aa86
--- /dev/null
+++ b/2024/X/one.py
@@ -0,0 +1,11 @@
+#!/usr/bin/env python3
+
+import sys
+
+input_file = sys.argv[1]
+
+with open(input_file) as fd:
+    lines = [line.rstrip() for line in fd.readlines()]
+
+height = len(lines)
+width = len(lines[0])
diff --git a/2024/X/two.py b/2024/X/two.py
new file mode 100644
index 0000000..e69de29
diff --git a/2024/times.escape b/2024/times.escape
new file mode 100644
index 0000000..e21a332
--- /dev/null
+++ b/2024/times.escape
@@ -0,0 +1,33 @@
+                                                          Advent of Code times                                                          
+┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓
+┃ Puzzle date ┃ Puzzle title           ┃ Opened date         ┃ P1 time  ┃ P1 attempts ┃ P2 time        ┃ P2 attempts ┃ Total time      ┃
+┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩
+│ 2024-12-01  │ Historian Hysteria     │ 2024-12-01 11:37:35 │ 0:11:06  │ 2           │ 0:03:35        │ 1           │ 0:14:41         │
+│ 2024-12-02  │ Red-Nosed Reports      │ 2024-12-02 10:17:11 │ 0:07:09  │ 1           │ 0:03:52        │ 1           │ 0:11:01         │
+│ 2024-12-03  │ Mull It Over           │ 2024-12-03 18:25:16 │ 0:04:36  │ 1           │ 0:05:15        │ 1           │ 0:09:51         │
+│ 2024-12-04  │ Ceres Search           │ 2024-12-04 11:04:12 │ 0:24:23  │ 1           │ 0:07:14        │ 1           │ 0:31:37         │
+│ 2024-12-05  │ Print Queue            │ 2024-12-05 10:08:48 │ 0:11:41  │ 1           │ 0:12:48        │ 1           │ 0:24:29         │
+│ 2024-12-06  │ Guard Gallivant        │ 2024-12-06 10:48:54 │ 0:14:23  │ 1           │ 0:19:23        │ 1           │ 0:33:46         │
+│ 2024-12-07  │ Bridge Repair          │ 2024-12-07 11:48:38 │ 0:17:17  │ 2           │ 0:01:42        │ 1           │ 0:18:59         │
+│ 2024-12-08  │ Resonant Collinearity  │ 2024-12-08 12:24:23 │ 0:18:25  │ 1           │ 0:07:19        │ 1           │ 0:25:44         │
+│ 2024-12-09  │ Disk Fragmenter        │ 2024-12-09 17:05:00 │ 0:17:50  │ 1           │ 0:13:38        │ 1           │ 0:31:28         │
+│ 2024-12-10  │ Hoof It                │ 2024-12-10 16:26:17 │ 0:29:16  │ 1           │ 0:01:03        │ 1           │ 0:30:19         │
+│ 2024-12-11  │ Plutonian Pebbles      │ 2024-12-11 10:54:43 │ 0:08:16  │ 1           │ 1:38:37        │ 1           │ 1:46:53         │
+│ 2024-12-12  │ Garden Groups          │ 2024-12-12 09:44:54 │ 0:36:57  │ 1           │ 0:22:54        │ 1           │ 0:59:51         │
+│ 2024-12-13  │ Claw Contraption       │ 2024-12-13 11:18:09 │ 0:46:35  │ 1           │ 4:53:18        │ 1           │ 5:39:53         │
+│ 2024-12-14  │ Restroom Redoubt       │ 2024-12-14 12:13:09 │ 0:30:06  │ 1           │ 0:06:04        │ 1           │ 0:36:10         │
+│ 2024-12-15  │ Warehouse Woes         │ 2024-12-15 10:41:57 │ 0:30:00  │ 1           │ 0:34:19        │ 1           │ 1:04:19         │
+│ 2024-12-16  │ Reindeer Maze          │ 2024-12-16 15:18:12 │ 0:59:02  │ 1           │ 0:31:45        │ 1           │ 1:30:47         │
+│ 2024-12-17  │ Chronospatial Computer │ 2024-12-17 14:59:30 │ 0:18:45  │ 1           │ 2:00:37        │ 1           │ 2:19:22         │
+│ 2024-12-18  │ RAM Run                │ 2024-12-18 09:05:58 │ 0:36:16  │ 1           │ 0:05:46        │ 1           │ 0:42:02         │
+│ 2024-12-19  │ Linen Layout           │ 2024-12-19 10:41:30 │ 0:08:00  │ 1           │ 0:08:01        │ 1           │ 0:16:01         │
+│ 2024-12-20  │ Race Condition         │ 2024-12-20 09:18:09 │ 1:26:24  │ 2           │ 1:51:20        │ 2           │ 3:17:44         │
+│ 2024-12-21  │ Keypad Conundrum       │ 2024-12-21 09:42:01 │ 1:23:38  │ 1           │ 15:30:41       │ 1           │ 16:54:19        │
+│ 2024-12-22  │ Monkey Market          │ 2024-12-22 12:31:22 │ 0:19:56  │ 1           │ 2:07:21        │ 2           │ 2:27:17         │
+│ 2024-12-23  │ LAN Party              │ 2024-12-23 12:43:58 │ 0:16:08  │ 2           │ 0:33:30        │ 1           │ 0:49:38         │
+│ 2024-12-24  │ Crossed Wires          │ 2024-12-24 10:11:36 │ 0:15:34  │ 1           │ 1:52:13        │ 1           │ 2:07:47         │
+│ 2024-12-25  │ Code Chronicle         │ 2024-12-25 10:26:05 │ 0:14:59  │ 1           │ 0:01:24        │ 1           │ 0:16:23         │
+├─────────────┼────────────────────────┼─────────────────────┼──────────┼─────────────┼────────────────┼─────────────┼─────────────────┤
+│ Total       │ 25                     │                     │ 11:06:42 │ 29          │ 1 day, 9:33:39 │ 27          │ 1 day, 20:40:21 │
+└─────────────┴────────────────────────┴─────────────────────┴──────────┴─────────────┴────────────────┴─────────────┴─────────────────┘
+                  Bold puzzle date: weekend; Bold time: worst part; Underline time: worst 25%; Underline attempts: >1                   
diff --git a/LICENSE.EUPLv1.2 b/LICENSE.EUPLv1.2
new file mode 100644
index 0000000..a0fa10b
--- /dev/null
+++ b/LICENSE.EUPLv1.2
@@ -0,0 +1,153 @@
+EUROPEAN UNION PUBLIC LICENCE v. 1.2
+EUPL © the European Union 2007, 2016
+
+This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined below) which is provided under the terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such use is covered by a right of the copyright holder of the Work).
+
+The Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following notice immediately following the copyright notice for the Work:
+
+Licensed under the EUPL
+
+or has expressed by any other means his willingness to license under the EUPL.
+
+1. Definitions
+In this Licence, the following terms have the following meaning:
+
+— ‘The Licence’: this Licence.
+
+— ‘The Original Work’: the work or software distributed or communicated by the Licensor under this Licence, available as Source Code and also as Executable Code as the case may be.
+
+— ‘Derivative Works’: the works or software that could be created by the Licensee, based upon the Original Work or modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in the country mentioned in Article 15.
+
+— ‘The Work’: the Original Work or its Derivative Works.
+
+— ‘The Source Code’: the human-readable form of the Work which is the most convenient for people to study and modify.
+
+— ‘The Executable Code’: any code which has generally been compiled and which is meant to be interpreted by a computer as a program.
+
+— ‘The Licensor’: the natural or legal person that distributes or communicates the Work under the Licence.
+
+— ‘Contributor(s)’: any natural or legal person who modifies the Work under the Licence, or otherwise contributes to the creation of a Derivative Work.
+
+— ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of the Work under the terms of the Licence.
+
+— ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, renting, distributing, communicating, transmitting, or otherwise making available, online or offline, copies of the Work or providing access to its essential functionalities at the disposal of any other natural or legal person.
+
+2. Scope of the rights granted by the Licence
+The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, sublicensable licence to do the following, for the duration of copyright vested in the Original Work:
+
+— use the Work in any circumstance and for all usage,
+
+— reproduce the Work,
+
+— modify the Work, and make Derivative Works based upon the Work,
+
+— communicate to the public, including the right to make available or display the Work or copies thereof to the public and perform publicly, as the case may be, the Work,
+
+— distribute the Work or copies thereof,
+
+— lend and rent the Work or copies thereof,
+
+— sublicense rights in the Work or copies thereof.
+
+Those rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the applicable law permits so.
+
+In the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed by law in order to make effective the licence of the economic rights here above listed.
+
+The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to any patents held by the Licensor, to the extent necessary to make use of the rights granted on the Work under this Licence.
+
+3. Communication of the Source Code
+The Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as Executable Code, the Licensor provides in addition a machine-readable copy of the Source Code of the Work along with each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to distribute or communicate the Work.
+
+4. Limitations on copyright
+Nothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the exclusive rights of the rights owners in the Work, of the exhaustion of those rights or of other applicable limitations thereto.
+
+5. Obligations of the Licensee
+The grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those obligations are the following:
+
+Attribution right: The Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the Licence with every copy of the Work he/she distributes or communicates. The Licensee must cause any Derivative Work to carry prominent notices stating that the Work has been modified and the date of modification.
+Copyleft clause: If the Licensee distributes or communicates copies of the Original Works or Derivative Works, this Distribution or Communication will be done under the terms of this Licence or of a later version of this Licence unless the Original Work is expressly distributed only under this version of the Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the Work or Derivative Work that alter or restrict the terms of the Licence.
+Compatibility clause: If the Licensee Distributes or Communicates Derivative Works or copies thereof based upon both the Work and another work licensed under a Compatible Licence, this Distribution or Communication can be done under the terms of this Compatible Licence. For the sake of this clause, ‘Compatible Licence’ refers to the licences listed in the appendix attached to this Licence. Should the Licensee's obligations under the Compatible Licence conflict with his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.
+Provision of Source Code: When distributing or communicating copies of the Work, the Licensee will provide a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available for as long as the Licensee continues to distribute or communicate the Work.
+Legal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the copyright notice.
+6. Chain of Authorship
+The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.
+
+Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.
+
+Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contri­ butions to the Work, under the terms of this Licence.
+
+7. Disclaimer of Warranty
+The Work is a work in progress, which is continuously improved by numerous Contributors. It is not a finished work and may therefore contain defects or ‘bugs’ inherent to this type of development.
+
+For the above reason, the Work is provided under the Licence on an ‘as is’ basis and without warranties of any kind concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this Licence.
+
+This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.
+
+8. Disclaimer of Liability
+Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However, the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.
+
+9. Additional agreements
+While distributing the Work, You may choose to conclude an additional agreement, defining obligations or services consistent with this Licence. However, if accepting obligations, You may act only on your own behalf and on your sole responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by the fact You have accepted any warranty or additional liability.
+
+10. Acceptance of the Licence
+The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ placed under the bottom of a window displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms and conditions.
+
+Similarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution or Communication by You of the Work or copies thereof.
+
+11. Information to the public
+In case of any Distribution or Communication of the Work by means of electronic communication by You (for example, by offering to download the Work from a remote location) the distribution channel or media (for example, a website) must at least provide to the public the information requested by the applicable law regarding the Licensor, the Licence and the way it may be accessible, concluded, stored and reproduced by the Licensee.
+
+12. Termination of the Licence
+The Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms of the Licence.
+
+Such a termination will not terminate the licences of any person who has received the Work from the Licensee under the Licence, provided such persons remain in full compliance with the Licence.
+
+13. Miscellaneous
+Without prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the Work.
+
+If any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or enforceability of the Licence as a whole. Such provision will be construed or reformed so as necessary to make it valid and enforceable.
+
+The European Commission may publish other linguistic versions or new versions of this Licence or updated versions of the Appendix, so far this is required and reasonable, without reducing the scope of the rights granted by the Licence. New versions of the Licence will be published with a unique version number.
+
+All linguistic versions of this Licence, approved by the European Commission, have identical value. Parties can take advantage of the linguistic version of their choice.
+
+14. Jurisdiction
+Without prejudice to specific agreement between parties,
+
+— any litigation resulting from the interpretation of this License, arising between the European Union institutions, bodies, offices or agencies, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice of the European Union, as laid down in article 272 of the Treaty on the Functioning of the European Union,
+
+— any litigation arising between other parties and resulting from the interpretation of this License, will be subject to the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.
+
+15. Applicable Law
+Without prejudice to specific agreement between parties,
+
+— this Licence shall be governed by the law of the European Union Member State where the Licensor has his seat, resides or has his registered office,
+
+— this licence shall be governed by Belgian law if the Licensor has no seat, residence or registered office inside a European Union Member State.
+
+Appendix
+‘Compatible Licences’ according to Article 5 EUPL are:
+
+— GNU General Public License (GPL) v. 2, v. 3
+
+— GNU Affero General Public License (AGPL) v. 3
+
+— Open Software License (OSL) v. 2.1, v. 3.0
+
+— Eclipse Public License (EPL) v. 1.0
+
+— CeCILL v. 2.0, v. 2.1
+
+— Mozilla Public Licence (MPL) v. 2
+
+— GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3
+
+— Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for works other than software
+
+— European Union Public Licence (EUPL) v. 1.1, v. 1.2
+
+— Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong Reciprocity (LiLiQ-R+)
+
+The European Commission may update this Appendix to later versions of the above licences without producing a new version of the EUPL, as long as they provide the rights granted in Article 2 of this Licence and protect the covered Source Code from exclusive appropriation.
+
+All other changes or additions to this Appendix require the production of a new EUPL version.
diff --git a/LICENSE.Unlicense b/LICENSE.Unlicense
new file mode 100644
index 0000000..fdddb29
--- /dev/null
+++ b/LICENSE.Unlicense
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..16085fe
--- /dev/null
+++ b/README.md
@@ -0,0 +1,32 @@
+# Advent of Code
+
+[Advent of Code](https://adventofcode.com/) is a yearly coding competition.
+In this repo are the solutions and notes I wrote for it.
+
+**Content warning:** Some profanity.
+
+Unless indicated otherwise in a README, `one.py` and `two.py` are the files that generated the solution that got me the answer.
+So they WILL contain unreadable code and broken solutions, as I'm optimizing for answer speed.
+
+Other codes are either solutions that went so bad I wrote a backup in a different file (otherwise I usually rewrite/comment out the things that don't work),
+or puzzles I revisited because someone posted a part 3, I wanted to try a different approach, or I wanted to figure out how the hell the code that got me the solution worked in the first place.
+
+## Times display
+
+Since there's no way I was going to get up at 6 AM but I still wanted to keep track of the time I took to get to the right answer,
+the `times.py` script display a table of the times between I opened the puzzle in my browser, and the time I submitted the solution.
+It has quite a few limitations but they're documented.
+Either run it with Lix/Nix, or manually install the dependencies that are stated on the 3rd line.
+
+## License
+
+I'm not 100% sure it can work like this but here goes:
+
+- `times.py` is licensed under the "European Union Public License v1.2". The idea is that if you modify the script and use it to share its output, you have to share your modifications as well, so the community can also enjoy it.
+- Puzzle solutions, test inputs I wrote are licensed under "The Unlicense". It's basically public domain, so it can be used as teaching material.
+- Inputs copied from Reddit (identified with a "reddit" somewhere in the filename) are... I don't know, and I'm not reading the Reddit TOS to figure it out.
+
+
+
+
+
diff --git a/times.csv b/times.csv
new file mode 100644
index 0000000..bc766b9
--- /dev/null
+++ b/times.csv
@@ -0,0 +1,30 @@
+puzzle,opened,part1_attempts,part1_finished,part2_attempts,part2_finished
+2023-12-01,2023-12-02 12:02:03+01:00,1,2023-12-02 12:14:04+01:00,1,2023-12-02 12:33:28+01:00
+2024-12-01,2024-12-01 11:37:35+01:00,2,2024-12-01 11:48:41+01:00,1,2024-12-01 11:52:16+01:00
+2023-12-02,2024-12-01 22:31:10+01:00,3,2024-12-01 22:47:42+01:00,1,2024-12-01 22:50:34+01:00
+2023-12-03,2024-12-01 22:50:40+01:00,1,2024-12-01 23:13:57+01:00,1,2024-12-01 23:18:33+01:00
+2023-12-24,2024-12-01 23:18:47+01:00,0,None,0,None
+2024-12-02,2024-12-02 10:17:11+01:00,1,2024-12-02 10:24:20+01:00,1,2024-12-02 10:28:12+01:00
+2024-12-03,2024-12-03 18:25:16+01:00,1,2024-12-03 18:29:52+01:00,1,2024-12-03 18:35:07+01:00
+2024-12-04,2024-12-04 11:04:12+01:00,1,2024-12-04 11:28:35+01:00,1,2024-12-04 11:35:49+01:00
+2024-12-05,2024-12-05 10:08:48+01:00,1,2024-12-05 10:20:29+01:00,1,2024-12-05 10:33:17+01:00
+2024-12-06,2024-12-06 10:48:54+01:00,1,2024-12-06 11:03:17+01:00,1,2024-12-06 11:22:40+01:00
+2024-12-07,2024-12-07 11:48:38+01:00,2,2024-12-07 12:05:55+01:00,1,2024-12-07 12:07:37+01:00
+2024-12-08,2024-12-08 12:24:23+01:00,1,2024-12-08 12:42:48+01:00,1,2024-12-08 12:50:07+01:00
+2024-12-09,2024-12-09 17:05:00+01:00,1,2024-12-09 17:22:50+01:00,1,2024-12-09 17:36:28+01:00
+2024-12-10,2024-12-10 16:26:17+01:00,1,2024-12-10 16:55:33+01:00,1,2024-12-10 16:56:36+01:00
+2024-12-11,2024-12-11 10:54:43+01:00,1,2024-12-11 11:02:59+01:00,1,2024-12-11 12:41:36+01:00
+2024-12-12,2024-12-12 09:44:54+01:00,1,2024-12-12 10:21:51+01:00,1,2024-12-12 10:44:45+01:00
+2024-12-13,2024-12-13 11:18:09+01:00,1,2024-12-13 12:04:44+01:00,1,2024-12-13 16:58:02+01:00
+2024-12-14,2024-12-14 12:13:09+01:00,1,2024-12-14 12:43:15+01:00,1,2024-12-14 12:49:19+01:00
+2024-12-15,2024-12-15 10:41:57+01:00,1,2024-12-15 11:11:57+01:00,1,2024-12-15 11:46:16+01:00
+2024-12-16,2024-12-16 15:18:12+01:00,1,2024-12-16 16:17:14+01:00,1,2024-12-16 16:48:59+01:00
+2024-12-17,2024-12-17 14:59:30+01:00,1,2024-12-17 15:18:15+01:00,1,2024-12-17 17:18:52+01:00
+2024-12-18,2024-12-18 09:05:58+01:00,1,2024-12-18 09:42:14+01:00,1,2024-12-18 09:48:00+01:00
+2024-12-19,2024-12-19 10:41:30+01:00,1,2024-12-19 10:49:30+01:00,1,2024-12-19 10:57:31+01:00
+2024-12-20,2024-12-20 09:18:09+01:00,2,2024-12-20 10:44:33+01:00,2,2024-12-20 12:35:53+01:00
+2024-12-21,2024-12-21 09:42:01+01:00,1,2024-12-21 11:05:39+01:00,1,2024-12-22 02:36:20+01:00
+2024-12-22,2024-12-22 12:31:22+01:00,1,2024-12-22 12:51:18+01:00,2,2024-12-22 14:58:39+01:00
+2024-12-23,2024-12-23 12:43:58+01:00,2,2024-12-23 13:00:06+01:00,1,2024-12-23 13:33:36+01:00
+2024-12-24,2024-12-24 10:11:36+01:00,1,2024-12-24 10:27:10+01:00,1,2024-12-24 12:19:23+01:00
+2024-12-25,2024-12-25 10:26:05+01:00,1,2024-12-25 10:41:04+01:00,1,2024-12-25 10:42:28+01:00
diff --git a/times.py b/times.py
new file mode 100755
index 0000000..5b3ac6b
--- /dev/null
+++ b/times.py
@@ -0,0 +1,308 @@
+#!/usr/bin/env cached-nix-shell
+#! nix-shell -i python3
+#! nix-shell -p python3 python3Packages.rich python3Packages.typer aoc-cli
+# vim: filetype=python
+
+"""
+Display Advent of Code puzzle solving times based on web browser history.
+
+Assumptions/Limitations:
+- You opened your and submitted your inputs with the qutebrowser web browser
+- The last attempt you made at a puzzle was the correct one
+- aoc-cli is configured
+- There will be a YYYY/MM folder relative to $PWD if you attempted the puzzle
+- This script will add a prompt file in above directory (to cache the titles)
+"""
+
+import collections
+import csv
+import datetime
+import enum
+import os
+import pathlib
+import re
+import sqlite3
+import statistics
+import subprocess
+import typing
+import urllib.parse
+import zoneinfo
+
+import rich.console
+import rich.table
+import typer
+
+app = typer.Typer()
+
+
+def get_qutebrowser_urls() -> (
+    typing.Generator[tuple[datetime.datetime, urllib.parse.ParseResult], None, None]
+):
+    qutebrowser_history_path = os.path.expanduser(
+        "~/.local/share/qutebrowser/history.sqlite"
+    )
+    db = sqlite3.connect(qutebrowser_history_path)
+
+    cur = db.cursor()
+    for row in cur.execute(
+        "SELECT atime,url FROM History"
+        " WHERE url LIKE 'https://adventofcode.com/%/day/%'"
+        " ORDER BY atime ASC"
+    ):
+        tim = datetime.datetime.fromtimestamp(row[0]).astimezone()
+        url = urllib.parse.urlparse(row[1])
+        yield tim, url
+
+
+# opened, p1 attempts, p1 last answer, p2 attempts, p2 last answer
+PuzzleTimesAttempts = tuple[
+    datetime.datetime, int, datetime.datetime | None, int, datetime.datetime | None
+]
+
+
+def get_puzzle_folder(date: datetime.date) -> pathlib.Path | None:
+    path = pathlib.Path(f"{date.year}/{date.day}")
+    if path.is_dir():
+        return path
+    else:
+        return None
+
+
+def get_time_attempts(year: int | None) -> dict[datetime.date, PuzzleTimesAttempts]:
+    starts: dict[datetime.date, datetime.datetime] = dict()
+    part1a: dict[datetime.date, int] = collections.Counter()
+    part1t: dict[datetime.date, datetime.datetime] = dict()
+    got_part2: set[datetime.date] = set()
+    part2a: dict[datetime.date, int] = collections.Counter()
+    part2t: dict[datetime.date, datetime.datetime] = dict()
+
+    for tim, url in get_qutebrowser_urls():
+        match = re.match(
+            r"^/(?P<year>[0-9]{4})/day/(?P<day>[0-9]{1,2})(?P<answer>/answer)?$",
+            url.path,
+        )
+        if not match:
+            continue  # Not an interesting URL
+
+        date = datetime.date(int(match["year"]), 12, int(match["day"]))
+        if year is not None and date.year != year:
+            continue  # Not the wanted year
+
+        answer = bool(match["answer"])
+        part2 = url.fragment == "part2"
+
+        if date not in starts:
+            starts[date] = tim
+
+        if answer:
+            if date in got_part2:
+                part2a[date] += 1
+                part2t[date] = tim
+            else:
+                part1a[date] += 1
+                part1t[date] = tim
+        elif part2:
+            got_part2.add(date)
+
+    time_attempts = dict()
+    for date in starts:
+        if get_puzzle_folder(date) is None:
+            continue  # Not attempted
+
+        time_attempts[date] = (
+            starts[date],
+            part1a.get(date, 0),
+            part1t.get(date),
+            part2a.get(date, 0),
+            part2t.get(date),
+        )
+    return time_attempts
+
+
+def get_puzzle_prompt(date: datetime.date) -> str:
+    path = get_puzzle_folder(date)
+    assert path
+    filepath = path / "prompt"
+    if not filepath.is_file():
+        r = subprocess.run(
+            ["aoc", "read", "--year", str(date.year), "--day", str(date.day)],
+            stdout=subprocess.PIPE,
+            stderr=subprocess.PIPE,
+        )
+        r.check_returncode()
+        with open(filepath, "w") as fd:
+            fd.write(r.stdout.decode())
+    with open(filepath) as fd:
+        return fd.read()
+
+
+def get_puzzle_title(date: datetime.date) -> str:
+    prompt = get_puzzle_prompt(date)
+    for line in prompt.splitlines():
+        match = re.match(f"^--- Day {date.day}: (.+) ---$", line)
+        if match:
+            return match[1]
+    raise ValueError("Could not find title in prompt")
+
+
+def bold_time_threshold(times: list[datetime.timedelta]) -> datetime.timedelta:
+    times_s = [round(t.total_seconds(), 1) for t in times]
+    quantiles = statistics.quantiles(times_s)
+    return datetime.timedelta(seconds=quantiles[-1])
+
+
+def format_puzzle(date: datetime.date) -> str:
+    string = str(date)
+    if date.weekday() in (5, 6):
+        string = f"[bold]{string}"
+    return string
+
+
+def format_time(
+    time: datetime.timedelta | None,
+    bold_threshold: datetime.timedelta,
+    compare: datetime.timedelta | None = None,
+) -> str:
+    if time is None:
+        return "[bright_black]-"
+    string = str(time)
+    if time >= bold_threshold:
+        string = f"[underline]{string}"
+    if compare and time > compare:
+        string = f"[bold]{string}"
+    return string
+
+
+def format_attempts(
+    attempts: int,
+) -> str:
+    if attempts == 0:
+        return "[bright_black]-"
+    string = str(attempts)
+    if attempts > 1:
+        string = f"[underline]{string}"
+    return string
+
+
+class SortMethod(str, enum.Enum):
+    puzzle = "puzzle"
+    opened = "opened"
+    part1_time = "part1_time"
+    part2_time = "part2_time"
+    total_time = "total_time"
+
+
+@app.command("csv")
+def write_csv(file: typer.FileTextWrite, year: int | None = None) -> None:
+    writer = csv.writer(file)
+    writer.writerow(
+        (
+            "puzzle",
+            "opened",
+            "part1_attempts",
+            "part1_finished",
+            "part2_attempts",
+            "part2_finished",
+        )
+    )
+    for puzzle, times_attempts in get_time_attempts(year).items():
+        all_info = (puzzle,) + times_attempts
+        writer.writerow(str(i) for i in all_info)
+
+
+@app.command("table")
+def print_table(
+    year: int | None = None,
+    assume_early_bird: bool = False,
+    show_opened: bool = True,
+    sort: SortMethod = SortMethod.opened,
+) -> None:
+
+    if assume_early_bird:
+        show_opened = False
+
+    puzzles = get_time_attempts(year)
+    part1_times = dict()
+    part2_times = dict()
+    total_times = dict()
+    for date, time_attempts in puzzles.items():
+        start, _, part1_date, _, part2_date = time_attempts
+        if part1_date:
+            if assume_early_bird:
+                start = datetime.datetime(
+                    date.year, date.month, date.day, tzinfo=zoneinfo.ZoneInfo("EST")
+                )
+            part1_times[date] = part1_date - start
+            if part2_date:
+                part2_times[date] = part2_date - part1_date
+                total_times[date] = part2_date - start
+
+    part1_bold_time_threshold = bold_time_threshold(list(part1_times.values()))
+    part2_bold_time_threshold = bold_time_threshold(list(part2_times.values()))
+    total_bold_time_threshold = bold_time_threshold(list(total_times.values()))
+
+    part1_total = sum(part1_times.values(), start=datetime.timedelta())
+    part1_attempts = sum(puzzle[1] for puzzle in puzzles.values())
+    part2_total = sum(part2_times.values(), start=datetime.timedelta())
+    part2_attempts = sum(puzzle[3] for puzzle in puzzles.values())
+    total_total = sum(total_times.values(), start=datetime.timedelta())
+
+    table = rich.table.Table(
+        title="Advent of Code times",
+        caption="Bold puzzle date: weekend; "
+        "Bold time: worst part; "
+        "Underline time: worst 25%; "
+        "Underline attempts: >1",
+        show_footer=True,
+    )
+    table.add_column("Puzzle date", "Total", style="blue")
+    table.add_column("Puzzle title", str(len(puzzles)), style="blue")
+    if show_opened:
+        table.add_column("Opened date", style="magenta")
+    table.add_column("P1 time", str(part1_total), style="green")
+    table.add_column("P1 attempts", str(part1_attempts), style="cyan")
+    table.add_column("P2 time", str(part2_total), style="green")
+    table.add_column("P2 attempts", str(part2_attempts), style="cyan")
+    table.add_column("Total time", str(total_total), style="yellow")
+
+    dates = list(puzzles.keys())
+    if sort == SortMethod.puzzle:
+        dates.sort()
+    elif sort == SortMethod.opened:
+        pass
+    elif sort == SortMethod.part1_time:
+        dates.sort(key=lambda d: part1_times.get(d, datetime.timedelta.max))
+    elif sort == SortMethod.part2_time:
+        dates.sort(key=lambda d: part2_times.get(d, datetime.timedelta.max))
+    elif sort == SortMethod.total_time:
+        dates.sort(key=lambda d: total_times.get(d, datetime.timedelta.max))
+    else:
+        assert False
+
+    for date in dates:
+        start, part1_attempts, _, part2_attempts, _ = puzzles[date]
+        part1_time = part1_times.get(date)
+        part2_time = part2_times.get(date)
+        total_time = total_times.get(date)
+        row = (
+            (
+                format_puzzle(date),
+                get_puzzle_title(date),
+            )
+            + ((str(start),) if show_opened else tuple())
+            + (
+                format_time(part1_time, part1_bold_time_threshold, part2_time),
+                format_attempts(part1_attempts),
+                format_time(part2_time, part2_bold_time_threshold, part1_time),
+                format_attempts(part2_attempts),
+                format_time(total_time, total_bold_time_threshold),
+            )
+        )
+        table.add_row(*row)
+
+    console = rich.console.Console()
+    console.print(table)
+
+
+if __name__ == "__main__":
+    app()