summaryrefslogtreecommitdiff
path: root/2022
diff options
context:
space:
mode:
authornekineki <nekineki@nekineki.net>2022-12-05 06:38:13 +0100
committernekineki <nekineki@nekineki.net>2022-12-05 22:06:54 +0100
commitc819997f02d8ea1dcbd528b6ad4fb1d29fd9085f (patch)
tree706af8d485957f45ec218c606ee9b55b6cd1f4ec /2022
parent2aa1c53877f00cf214288630401f044c30fc2793 (diff)
day5
Diffstat (limited to '2022')
-rwxr-xr-x2022/day5/asd.py57
-rw-r--r--2022/day5/pzl.txt513
-rw-r--r--2022/day5/pzl_mod.txt513
-rw-r--r--2022/day5/ref.txt9
-rw-r--r--2022/day5/ref_mod.txt8
5 files changed, 1100 insertions, 0 deletions
diff --git a/2022/day5/asd.py b/2022/day5/asd.py
new file mode 100755
index 0000000..8fc94fa
--- /dev/null
+++ b/2022/day5/asd.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+from functools import reduce
+
+# filename = "ref_mod.txt"
+filename = "pzl_mod.txt"
+
+res1 = ''
+res2 = ''
+f = open(filename)
+
+stacks1 = []
+stacks2 = []
+for line in f:
+ line = line.strip()
+
+ if line == '':
+ break
+
+ stack = []
+ for c in line:
+ stack.append(c)
+ stacks1.append(stack)
+ stacks2.append(stack)
+# print(stacks1)
+
+for line in f:
+ line = line.strip()
+ line = line.replace('move', '').replace('from ', '').replace('to ', '').strip()
+ mcount, mfrom, mto = [int(i) for i in line.split(' ')]
+
+ mfrom -= 1
+ mto -= 1
+
+ to_move = stacks1[mfrom][-mcount:]
+ stacks1[mfrom] = stacks1[mfrom][:-mcount]
+ stacks1[mto] = stacks1[mto] + to_move[::-1]
+ # print(stacks1)
+
+ to_move = stacks2[mfrom][-mcount:]
+ stacks2[mfrom] = stacks2[mfrom][:-mcount]
+ stacks2[mto] = stacks2[mto] + to_move
+ # print(stacks2)
+
+f.close()
+
+print(stacks1)
+print(stacks2)
+
+for i in stacks1:
+ res1 = res1 + i[-1]
+print('res1:', res1)
+
+for i in stacks2:
+ res2 = res2 + i[-1]
+print('res2:', res2)
+
diff --git a/2022/day5/pzl.txt b/2022/day5/pzl.txt
new file mode 100644
index 0000000..802f66b
--- /dev/null
+++ b/2022/day5/pzl.txt
@@ -0,0 +1,513 @@
+ [M] [B] [N]
+[T] [H] [V] [Q] [H]
+[Q] [N] [H] [W] [T] [Q]
+[V] [P] [F] [Q] [P] [C] [R]
+[C] [D] [T] [N] [N] [L] [S] [J]
+[D] [V] [W] [R] [M] [G] [R] [N] [D]
+[S] [F] [Q] [Q] [F] [F] [F] [Z] [S]
+[N] [M] [F] [D] [R] [C] [W] [T] [M]
+ 1 2 3 4 5 6 7 8 9
+
+move 1 from 8 to 7
+move 1 from 2 to 7
+move 6 from 9 to 8
+move 1 from 9 to 1
+move 1 from 9 to 1
+move 3 from 3 to 6
+move 3 from 3 to 9
+move 1 from 9 to 2
+move 5 from 7 to 9
+move 9 from 1 to 6
+move 3 from 4 to 9
+move 2 from 9 to 2
+move 1 from 4 to 2
+move 1 from 3 to 9
+move 8 from 9 to 4
+move 14 from 6 to 7
+move 1 from 3 to 2
+move 5 from 4 to 2
+move 5 from 5 to 7
+move 4 from 2 to 1
+move 2 from 4 to 9
+move 1 from 4 to 3
+move 3 from 5 to 7
+move 1 from 8 to 6
+move 2 from 8 to 7
+move 2 from 1 to 2
+move 1 from 9 to 7
+move 2 from 1 to 3
+move 5 from 6 to 5
+move 4 from 5 to 7
+move 3 from 8 to 4
+move 20 from 7 to 1
+move 11 from 7 to 5
+move 1 from 6 to 9
+move 3 from 9 to 2
+move 12 from 1 to 9
+move 2 from 8 to 3
+move 4 from 2 to 8
+move 8 from 2 to 1
+move 4 from 8 to 9
+move 1 from 2 to 5
+move 12 from 9 to 7
+move 4 from 4 to 9
+move 4 from 9 to 5
+move 13 from 5 to 4
+move 4 from 4 to 7
+move 1 from 7 to 9
+move 2 from 9 to 5
+move 9 from 1 to 2
+move 1 from 8 to 3
+move 5 from 4 to 2
+move 1 from 3 to 6
+move 7 from 2 to 8
+move 6 from 1 to 6
+move 6 from 8 to 7
+move 6 from 2 to 1
+move 3 from 9 to 3
+move 7 from 3 to 7
+move 4 from 4 to 9
+move 1 from 8 to 9
+move 1 from 3 to 9
+move 1 from 2 to 4
+move 1 from 9 to 6
+move 5 from 1 to 9
+move 1 from 4 to 9
+move 2 from 9 to 1
+move 8 from 6 to 7
+move 4 from 9 to 7
+move 2 from 5 to 2
+move 2 from 1 to 9
+move 14 from 7 to 4
+move 22 from 7 to 2
+move 2 from 7 to 4
+move 3 from 7 to 5
+move 9 from 4 to 7
+move 6 from 2 to 4
+move 8 from 4 to 3
+move 14 from 2 to 9
+move 2 from 3 to 9
+move 3 from 2 to 9
+move 4 from 4 to 2
+move 1 from 4 to 5
+move 1 from 1 to 4
+move 5 from 7 to 8
+move 1 from 1 to 3
+move 4 from 5 to 2
+move 6 from 3 to 9
+move 1 from 3 to 4
+move 4 from 8 to 9
+move 2 from 4 to 6
+move 4 from 5 to 3
+move 1 from 7 to 6
+move 1 from 8 to 5
+move 3 from 3 to 1
+move 33 from 9 to 5
+move 5 from 2 to 1
+move 1 from 3 to 5
+move 1 from 7 to 6
+move 18 from 5 to 1
+move 1 from 2 to 8
+move 6 from 5 to 4
+move 1 from 8 to 7
+move 2 from 4 to 1
+move 4 from 1 to 2
+move 19 from 1 to 2
+move 4 from 6 to 8
+move 4 from 1 to 8
+move 14 from 2 to 9
+move 5 from 2 to 4
+move 1 from 8 to 2
+move 8 from 2 to 5
+move 5 from 8 to 4
+move 4 from 9 to 7
+move 1 from 8 to 1
+move 16 from 5 to 4
+move 15 from 4 to 5
+move 1 from 9 to 5
+move 5 from 7 to 6
+move 2 from 7 to 6
+move 1 from 1 to 9
+move 7 from 6 to 7
+move 1 from 8 to 5
+move 1 from 1 to 9
+move 12 from 5 to 7
+move 7 from 5 to 9
+move 12 from 7 to 2
+move 1 from 7 to 4
+move 7 from 4 to 7
+move 2 from 9 to 4
+move 5 from 4 to 9
+move 8 from 2 to 3
+move 4 from 2 to 4
+move 9 from 4 to 8
+move 6 from 3 to 5
+move 8 from 7 to 3
+move 1 from 4 to 3
+move 7 from 8 to 9
+move 4 from 5 to 4
+move 6 from 3 to 1
+move 4 from 3 to 4
+move 1 from 3 to 6
+move 6 from 4 to 9
+move 1 from 6 to 5
+move 17 from 9 to 4
+move 3 from 7 to 3
+move 1 from 7 to 9
+move 2 from 5 to 3
+move 2 from 1 to 3
+move 2 from 8 to 9
+move 1 from 5 to 1
+move 14 from 4 to 5
+move 2 from 3 to 2
+move 1 from 7 to 6
+move 10 from 9 to 4
+move 12 from 9 to 4
+move 9 from 4 to 5
+move 1 from 2 to 9
+move 13 from 5 to 9
+move 2 from 5 to 1
+move 1 from 2 to 9
+move 3 from 4 to 2
+move 12 from 4 to 7
+move 8 from 5 to 7
+move 1 from 1 to 9
+move 1 from 6 to 4
+move 1 from 5 to 4
+move 1 from 4 to 8
+move 5 from 3 to 4
+move 10 from 9 to 6
+move 3 from 6 to 2
+move 7 from 6 to 5
+move 6 from 5 to 4
+move 1 from 8 to 5
+move 1 from 1 to 4
+move 2 from 7 to 2
+move 5 from 4 to 9
+move 2 from 5 to 8
+move 1 from 1 to 3
+move 2 from 1 to 7
+move 6 from 7 to 9
+move 9 from 9 to 8
+move 1 from 1 to 3
+move 4 from 2 to 7
+move 11 from 7 to 3
+move 11 from 8 to 6
+move 7 from 3 to 1
+move 4 from 7 to 2
+move 3 from 2 to 9
+move 8 from 1 to 5
+move 2 from 7 to 5
+move 2 from 2 to 9
+move 2 from 3 to 9
+move 11 from 4 to 7
+move 7 from 9 to 5
+move 6 from 6 to 5
+move 2 from 2 to 9
+move 1 from 2 to 3
+move 6 from 9 to 4
+move 3 from 9 to 1
+move 4 from 3 to 5
+move 6 from 7 to 1
+move 2 from 6 to 3
+move 2 from 9 to 2
+move 3 from 3 to 2
+move 3 from 6 to 8
+move 2 from 7 to 5
+move 20 from 5 to 6
+move 8 from 5 to 1
+move 1 from 5 to 9
+move 2 from 8 to 4
+move 1 from 8 to 7
+move 16 from 1 to 8
+move 8 from 8 to 9
+move 4 from 2 to 4
+move 1 from 1 to 5
+move 1 from 5 to 4
+move 3 from 8 to 4
+move 14 from 4 to 6
+move 5 from 8 to 7
+move 6 from 7 to 8
+move 29 from 6 to 2
+move 3 from 9 to 8
+move 21 from 2 to 3
+move 1 from 8 to 3
+move 6 from 9 to 4
+move 8 from 3 to 5
+move 7 from 8 to 4
+move 7 from 3 to 9
+move 3 from 7 to 2
+move 12 from 4 to 8
+move 2 from 3 to 1
+move 2 from 9 to 1
+move 1 from 6 to 7
+move 1 from 7 to 6
+move 1 from 6 to 3
+move 3 from 1 to 8
+move 2 from 4 to 1
+move 4 from 6 to 1
+move 5 from 2 to 7
+move 1 from 1 to 2
+move 5 from 1 to 2
+move 2 from 8 to 1
+move 1 from 4 to 5
+move 9 from 8 to 4
+move 3 from 7 to 9
+move 7 from 5 to 7
+move 2 from 5 to 9
+move 4 from 9 to 2
+move 3 from 3 to 2
+move 5 from 2 to 7
+move 2 from 8 to 2
+move 2 from 7 to 3
+move 1 from 8 to 6
+move 2 from 1 to 2
+move 1 from 6 to 7
+move 1 from 8 to 1
+move 12 from 7 to 1
+move 5 from 2 to 7
+move 7 from 4 to 2
+move 2 from 4 to 1
+move 5 from 3 to 8
+move 7 from 1 to 9
+move 4 from 7 to 1
+move 7 from 1 to 5
+move 12 from 9 to 2
+move 27 from 2 to 4
+move 3 from 8 to 9
+move 6 from 2 to 5
+move 6 from 1 to 8
+move 1 from 7 to 6
+move 9 from 5 to 2
+move 3 from 9 to 2
+move 13 from 4 to 5
+move 10 from 2 to 7
+move 1 from 9 to 8
+move 11 from 5 to 7
+move 1 from 8 to 7
+move 1 from 2 to 6
+move 13 from 4 to 3
+move 23 from 7 to 4
+move 1 from 6 to 9
+move 1 from 2 to 4
+move 7 from 3 to 5
+move 1 from 9 to 8
+move 19 from 4 to 1
+move 2 from 4 to 1
+move 1 from 7 to 6
+move 1 from 4 to 5
+move 1 from 5 to 7
+move 11 from 5 to 1
+move 2 from 5 to 4
+move 2 from 6 to 9
+move 3 from 8 to 2
+move 2 from 8 to 1
+move 3 from 2 to 1
+move 1 from 9 to 5
+move 6 from 1 to 3
+move 1 from 9 to 7
+move 2 from 7 to 5
+move 2 from 8 to 6
+move 1 from 3 to 2
+move 2 from 8 to 5
+move 1 from 2 to 1
+move 3 from 4 to 1
+move 3 from 5 to 1
+move 2 from 5 to 1
+move 2 from 6 to 9
+move 1 from 9 to 6
+move 1 from 4 to 5
+move 1 from 9 to 8
+move 1 from 8 to 6
+move 8 from 1 to 6
+move 7 from 1 to 8
+move 9 from 1 to 6
+move 1 from 5 to 3
+move 3 from 8 to 4
+move 11 from 3 to 4
+move 1 from 3 to 6
+move 10 from 6 to 8
+move 13 from 1 to 6
+move 3 from 4 to 5
+move 7 from 8 to 6
+move 3 from 8 to 5
+move 6 from 5 to 3
+move 22 from 6 to 9
+move 4 from 3 to 6
+move 4 from 9 to 5
+move 1 from 1 to 5
+move 2 from 3 to 4
+move 2 from 1 to 5
+move 1 from 9 to 2
+move 5 from 8 to 3
+move 2 from 9 to 2
+move 11 from 6 to 9
+move 3 from 2 to 7
+move 1 from 6 to 7
+move 12 from 9 to 8
+move 4 from 7 to 1
+move 12 from 4 to 8
+move 2 from 4 to 7
+move 1 from 1 to 8
+move 1 from 5 to 1
+move 19 from 8 to 4
+move 4 from 5 to 1
+move 1 from 7 to 4
+move 1 from 7 to 1
+move 3 from 3 to 4
+move 2 from 8 to 4
+move 1 from 5 to 7
+move 1 from 7 to 9
+move 8 from 1 to 8
+move 1 from 1 to 4
+move 1 from 3 to 9
+move 1 from 3 to 5
+move 1 from 5 to 2
+move 7 from 8 to 7
+move 16 from 4 to 7
+move 1 from 7 to 4
+move 3 from 8 to 2
+move 14 from 7 to 4
+move 1 from 5 to 8
+move 5 from 7 to 5
+move 16 from 4 to 5
+move 3 from 5 to 4
+move 3 from 2 to 1
+move 1 from 7 to 9
+move 11 from 4 to 2
+move 3 from 8 to 6
+move 2 from 1 to 8
+move 1 from 4 to 9
+move 18 from 5 to 1
+move 1 from 8 to 7
+move 3 from 7 to 9
+move 18 from 9 to 3
+move 3 from 6 to 9
+move 7 from 1 to 6
+move 1 from 8 to 4
+move 1 from 4 to 9
+move 3 from 6 to 4
+move 5 from 9 to 2
+move 2 from 4 to 7
+move 7 from 2 to 8
+move 1 from 7 to 3
+move 2 from 6 to 8
+move 1 from 9 to 5
+move 1 from 6 to 8
+move 1 from 4 to 8
+move 1 from 5 to 3
+move 1 from 7 to 5
+move 8 from 8 to 7
+move 10 from 2 to 6
+move 1 from 9 to 3
+move 6 from 6 to 2
+move 5 from 6 to 2
+move 7 from 2 to 7
+move 12 from 1 to 6
+move 2 from 2 to 1
+move 1 from 2 to 5
+move 4 from 7 to 6
+move 12 from 3 to 1
+move 2 from 7 to 2
+move 9 from 3 to 8
+move 1 from 2 to 6
+move 1 from 5 to 4
+move 9 from 6 to 5
+move 1 from 7 to 6
+move 1 from 4 to 9
+move 9 from 6 to 7
+move 7 from 8 to 3
+move 6 from 3 to 1
+move 4 from 8 to 3
+move 5 from 3 to 1
+move 1 from 9 to 8
+move 2 from 8 to 9
+move 5 from 5 to 7
+move 14 from 7 to 8
+move 1 from 9 to 4
+move 2 from 2 to 1
+move 3 from 5 to 3
+move 2 from 3 to 1
+move 1 from 4 to 6
+move 6 from 8 to 6
+move 6 from 8 to 3
+move 3 from 6 to 1
+move 2 from 8 to 9
+move 19 from 1 to 6
+move 3 from 9 to 3
+move 6 from 3 to 4
+move 6 from 6 to 2
+move 4 from 3 to 9
+move 1 from 7 to 9
+move 2 from 5 to 7
+move 5 from 9 to 6
+move 6 from 7 to 2
+move 11 from 2 to 5
+move 2 from 7 to 4
+move 4 from 4 to 3
+move 2 from 4 to 8
+move 12 from 1 to 2
+move 1 from 8 to 2
+move 8 from 5 to 7
+move 2 from 4 to 9
+move 2 from 7 to 1
+move 4 from 2 to 3
+move 1 from 8 to 6
+move 1 from 1 to 5
+move 2 from 9 to 1
+move 2 from 7 to 3
+move 2 from 5 to 2
+move 1 from 5 to 7
+move 2 from 7 to 8
+move 1 from 5 to 7
+move 5 from 3 to 4
+move 3 from 1 to 7
+move 1 from 2 to 4
+move 15 from 6 to 1
+move 4 from 4 to 1
+move 4 from 2 to 3
+move 8 from 3 to 2
+move 5 from 2 to 4
+move 1 from 8 to 6
+move 1 from 8 to 9
+move 1 from 3 to 1
+move 3 from 7 to 3
+move 5 from 7 to 6
+move 4 from 2 to 9
+move 6 from 2 to 6
+move 4 from 9 to 6
+move 12 from 1 to 5
+move 6 from 4 to 1
+move 1 from 3 to 6
+move 4 from 5 to 8
+move 7 from 5 to 3
+move 3 from 8 to 2
+move 1 from 2 to 3
+move 1 from 9 to 5
+move 1 from 4 to 5
+move 1 from 8 to 5
+move 8 from 6 to 9
+move 10 from 1 to 4
+move 3 from 6 to 1
+move 9 from 3 to 6
+move 1 from 3 to 8
+move 1 from 2 to 4
+move 6 from 9 to 1
+move 1 from 1 to 4
+move 10 from 1 to 6
+move 1 from 8 to 6
+move 13 from 6 to 7
+move 1 from 2 to 1
+move 1 from 9 to 6
+move 9 from 7 to 5
+move 1 from 9 to 4
+move 3 from 7 to 1
+move 3 from 5 to 6
+move 10 from 4 to 7
+move 5 from 6 to 5
+move 3 from 4 to 5
+move 13 from 6 to 9
+move 7 from 5 to 3
+move 6 from 3 to 2
+move 5 from 6 to 4
+move 4 from 2 to 8
diff --git a/2022/day5/pzl_mod.txt b/2022/day5/pzl_mod.txt
new file mode 100644
index 0000000..cb5b571
--- /dev/null
+++ b/2022/day5/pzl_mod.txt
@@ -0,0 +1,513 @@
+NSDCVQT
+MFV
+FQWDPNHM
+DQRTF
+RFMNQHVB
+CFGNPWQ
+WFRLCT
+TZNS
+MSDJRQHN
+
+move 1 from 8 to 7
+move 1 from 2 to 7
+move 6 from 9 to 8
+move 1 from 9 to 1
+move 1 from 9 to 1
+move 3 from 3 to 6
+move 3 from 3 to 9
+move 1 from 9 to 2
+move 5 from 7 to 9
+move 9 from 1 to 6
+move 3 from 4 to 9
+move 2 from 9 to 2
+move 1 from 4 to 2
+move 1 from 3 to 9
+move 8 from 9 to 4
+move 14 from 6 to 7
+move 1 from 3 to 2
+move 5 from 4 to 2
+move 5 from 5 to 7
+move 4 from 2 to 1
+move 2 from 4 to 9
+move 1 from 4 to 3
+move 3 from 5 to 7
+move 1 from 8 to 6
+move 2 from 8 to 7
+move 2 from 1 to 2
+move 1 from 9 to 7
+move 2 from 1 to 3
+move 5 from 6 to 5
+move 4 from 5 to 7
+move 3 from 8 to 4
+move 20 from 7 to 1
+move 11 from 7 to 5
+move 1 from 6 to 9
+move 3 from 9 to 2
+move 12 from 1 to 9
+move 2 from 8 to 3
+move 4 from 2 to 8
+move 8 from 2 to 1
+move 4 from 8 to 9
+move 1 from 2 to 5
+move 12 from 9 to 7
+move 4 from 4 to 9
+move 4 from 9 to 5
+move 13 from 5 to 4
+move 4 from 4 to 7
+move 1 from 7 to 9
+move 2 from 9 to 5
+move 9 from 1 to 2
+move 1 from 8 to 3
+move 5 from 4 to 2
+move 1 from 3 to 6
+move 7 from 2 to 8
+move 6 from 1 to 6
+move 6 from 8 to 7
+move 6 from 2 to 1
+move 3 from 9 to 3
+move 7 from 3 to 7
+move 4 from 4 to 9
+move 1 from 8 to 9
+move 1 from 3 to 9
+move 1 from 2 to 4
+move 1 from 9 to 6
+move 5 from 1 to 9
+move 1 from 4 to 9
+move 2 from 9 to 1
+move 8 from 6 to 7
+move 4 from 9 to 7
+move 2 from 5 to 2
+move 2 from 1 to 9
+move 14 from 7 to 4
+move 22 from 7 to 2
+move 2 from 7 to 4
+move 3 from 7 to 5
+move 9 from 4 to 7
+move 6 from 2 to 4
+move 8 from 4 to 3
+move 14 from 2 to 9
+move 2 from 3 to 9
+move 3 from 2 to 9
+move 4 from 4 to 2
+move 1 from 4 to 5
+move 1 from 1 to 4
+move 5 from 7 to 8
+move 1 from 1 to 3
+move 4 from 5 to 2
+move 6 from 3 to 9
+move 1 from 3 to 4
+move 4 from 8 to 9
+move 2 from 4 to 6
+move 4 from 5 to 3
+move 1 from 7 to 6
+move 1 from 8 to 5
+move 3 from 3 to 1
+move 33 from 9 to 5
+move 5 from 2 to 1
+move 1 from 3 to 5
+move 1 from 7 to 6
+move 18 from 5 to 1
+move 1 from 2 to 8
+move 6 from 5 to 4
+move 1 from 8 to 7
+move 2 from 4 to 1
+move 4 from 1 to 2
+move 19 from 1 to 2
+move 4 from 6 to 8
+move 4 from 1 to 8
+move 14 from 2 to 9
+move 5 from 2 to 4
+move 1 from 8 to 2
+move 8 from 2 to 5
+move 5 from 8 to 4
+move 4 from 9 to 7
+move 1 from 8 to 1
+move 16 from 5 to 4
+move 15 from 4 to 5
+move 1 from 9 to 5
+move 5 from 7 to 6
+move 2 from 7 to 6
+move 1 from 1 to 9
+move 7 from 6 to 7
+move 1 from 8 to 5
+move 1 from 1 to 9
+move 12 from 5 to 7
+move 7 from 5 to 9
+move 12 from 7 to 2
+move 1 from 7 to 4
+move 7 from 4 to 7
+move 2 from 9 to 4
+move 5 from 4 to 9
+move 8 from 2 to 3
+move 4 from 2 to 4
+move 9 from 4 to 8
+move 6 from 3 to 5
+move 8 from 7 to 3
+move 1 from 4 to 3
+move 7 from 8 to 9
+move 4 from 5 to 4
+move 6 from 3 to 1
+move 4 from 3 to 4
+move 1 from 3 to 6
+move 6 from 4 to 9
+move 1 from 6 to 5
+move 17 from 9 to 4
+move 3 from 7 to 3
+move 1 from 7 to 9
+move 2 from 5 to 3
+move 2 from 1 to 3
+move 2 from 8 to 9
+move 1 from 5 to 1
+move 14 from 4 to 5
+move 2 from 3 to 2
+move 1 from 7 to 6
+move 10 from 9 to 4
+move 12 from 9 to 4
+move 9 from 4 to 5
+move 1 from 2 to 9
+move 13 from 5 to 9
+move 2 from 5 to 1
+move 1 from 2 to 9
+move 3 from 4 to 2
+move 12 from 4 to 7
+move 8 from 5 to 7
+move 1 from 1 to 9
+move 1 from 6 to 4
+move 1 from 5 to 4
+move 1 from 4 to 8
+move 5 from 3 to 4
+move 10 from 9 to 6
+move 3 from 6 to 2
+move 7 from 6 to 5
+move 6 from 5 to 4
+move 1 from 8 to 5
+move 1 from 1 to 4
+move 2 from 7 to 2
+move 5 from 4 to 9
+move 2 from 5 to 8
+move 1 from 1 to 3
+move 2 from 1 to 7
+move 6 from 7 to 9
+move 9 from 9 to 8
+move 1 from 1 to 3
+move 4 from 2 to 7
+move 11 from 7 to 3
+move 11 from 8 to 6
+move 7 from 3 to 1
+move 4 from 7 to 2
+move 3 from 2 to 9
+move 8 from 1 to 5
+move 2 from 7 to 5
+move 2 from 2 to 9
+move 2 from 3 to 9
+move 11 from 4 to 7
+move 7 from 9 to 5
+move 6 from 6 to 5
+move 2 from 2 to 9
+move 1 from 2 to 3
+move 6 from 9 to 4
+move 3 from 9 to 1
+move 4 from 3 to 5
+move 6 from 7 to 1
+move 2 from 6 to 3
+move 2 from 9 to 2
+move 3 from 3 to 2
+move 3 from 6 to 8
+move 2 from 7 to 5
+move 20 from 5 to 6
+move 8 from 5 to 1
+move 1 from 5 to 9
+move 2 from 8 to 4
+move 1 from 8 to 7
+move 16 from 1 to 8
+move 8 from 8 to 9
+move 4 from 2 to 4
+move 1 from 1 to 5
+move 1 from 5 to 4
+move 3 from 8 to 4
+move 14 from 4 to 6
+move 5 from 8 to 7
+move 6 from 7 to 8
+move 29 from 6 to 2
+move 3 from 9 to 8
+move 21 from 2 to 3
+move 1 from 8 to 3
+move 6 from 9 to 4
+move 8 from 3 to 5
+move 7 from 8 to 4
+move 7 from 3 to 9
+move 3 from 7 to 2
+move 12 from 4 to 8
+move 2 from 3 to 1
+move 2 from 9 to 1
+move 1 from 6 to 7
+move 1 from 7 to 6
+move 1 from 6 to 3
+move 3 from 1 to 8
+move 2 from 4 to 1
+move 4 from 6 to 1
+move 5 from 2 to 7
+move 1 from 1 to 2
+move 5 from 1 to 2
+move 2 from 8 to 1
+move 1 from 4 to 5
+move 9 from 8 to 4
+move 3 from 7 to 9
+move 7 from 5 to 7
+move 2 from 5 to 9
+move 4 from 9 to 2
+move 3 from 3 to 2
+move 5 from 2 to 7
+move 2 from 8 to 2
+move 2 from 7 to 3
+move 1 from 8 to 6
+move 2 from 1 to 2
+move 1 from 6 to 7
+move 1 from 8 to 1
+move 12 from 7 to 1
+move 5 from 2 to 7
+move 7 from 4 to 2
+move 2 from 4 to 1
+move 5 from 3 to 8
+move 7 from 1 to 9
+move 4 from 7 to 1
+move 7 from 1 to 5
+move 12 from 9 to 2
+move 27 from 2 to 4
+move 3 from 8 to 9
+move 6 from 2 to 5
+move 6 from 1 to 8
+move 1 from 7 to 6
+move 9 from 5 to 2
+move 3 from 9 to 2
+move 13 from 4 to 5
+move 10 from 2 to 7
+move 1 from 9 to 8
+move 11 from 5 to 7
+move 1 from 8 to 7
+move 1 from 2 to 6
+move 13 from 4 to 3
+move 23 from 7 to 4
+move 1 from 6 to 9
+move 1 from 2 to 4
+move 7 from 3 to 5
+move 1 from 9 to 8
+move 19 from 4 to 1
+move 2 from 4 to 1
+move 1 from 7 to 6
+move 1 from 4 to 5
+move 1 from 5 to 7
+move 11 from 5 to 1
+move 2 from 5 to 4
+move 2 from 6 to 9
+move 3 from 8 to 2
+move 2 from 8 to 1
+move 3 from 2 to 1
+move 1 from 9 to 5
+move 6 from 1 to 3
+move 1 from 9 to 7
+move 2 from 7 to 5
+move 2 from 8 to 6
+move 1 from 3 to 2
+move 2 from 8 to 5
+move 1 from 2 to 1
+move 3 from 4 to 1
+move 3 from 5 to 1
+move 2 from 5 to 1
+move 2 from 6 to 9
+move 1 from 9 to 6
+move 1 from 4 to 5
+move 1 from 9 to 8
+move 1 from 8 to 6
+move 8 from 1 to 6
+move 7 from 1 to 8
+move 9 from 1 to 6
+move 1 from 5 to 3
+move 3 from 8 to 4
+move 11 from 3 to 4
+move 1 from 3 to 6
+move 10 from 6 to 8
+move 13 from 1 to 6
+move 3 from 4 to 5
+move 7 from 8 to 6
+move 3 from 8 to 5
+move 6 from 5 to 3
+move 22 from 6 to 9
+move 4 from 3 to 6
+move 4 from 9 to 5
+move 1 from 1 to 5
+move 2 from 3 to 4
+move 2 from 1 to 5
+move 1 from 9 to 2
+move 5 from 8 to 3
+move 2 from 9 to 2
+move 11 from 6 to 9
+move 3 from 2 to 7
+move 1 from 6 to 7
+move 12 from 9 to 8
+move 4 from 7 to 1
+move 12 from 4 to 8
+move 2 from 4 to 7
+move 1 from 1 to 8
+move 1 from 5 to 1
+move 19 from 8 to 4
+move 4 from 5 to 1
+move 1 from 7 to 4
+move 1 from 7 to 1
+move 3 from 3 to 4
+move 2 from 8 to 4
+move 1 from 5 to 7
+move 1 from 7 to 9
+move 8 from 1 to 8
+move 1 from 1 to 4
+move 1 from 3 to 9
+move 1 from 3 to 5
+move 1 from 5 to 2
+move 7 from 8 to 7
+move 16 from 4 to 7
+move 1 from 7 to 4
+move 3 from 8 to 2
+move 14 from 7 to 4
+move 1 from 5 to 8
+move 5 from 7 to 5
+move 16 from 4 to 5
+move 3 from 5 to 4
+move 3 from 2 to 1
+move 1 from 7 to 9
+move 11 from 4 to 2
+move 3 from 8 to 6
+move 2 from 1 to 8
+move 1 from 4 to 9
+move 18 from 5 to 1
+move 1 from 8 to 7
+move 3 from 7 to 9
+move 18 from 9 to 3
+move 3 from 6 to 9
+move 7 from 1 to 6
+move 1 from 8 to 4
+move 1 from 4 to 9
+move 3 from 6 to 4
+move 5 from 9 to 2
+move 2 from 4 to 7
+move 7 from 2 to 8
+move 1 from 7 to 3
+move 2 from 6 to 8
+move 1 from 9 to 5
+move 1 from 6 to 8
+move 1 from 4 to 8
+move 1 from 5 to 3
+move 1 from 7 to 5
+move 8 from 8 to 7
+move 10 from 2 to 6
+move 1 from 9 to 3
+move 6 from 6 to 2
+move 5 from 6 to 2
+move 7 from 2 to 7
+move 12 from 1 to 6
+move 2 from 2 to 1
+move 1 from 2 to 5
+move 4 from 7 to 6
+move 12 from 3 to 1
+move 2 from 7 to 2
+move 9 from 3 to 8
+move 1 from 2 to 6
+move 1 from 5 to 4
+move 9 from 6 to 5
+move 1 from 7 to 6
+move 1 from 4 to 9
+move 9 from 6 to 7
+move 7 from 8 to 3
+move 6 from 3 to 1
+move 4 from 8 to 3
+move 5 from 3 to 1
+move 1 from 9 to 8
+move 2 from 8 to 9
+move 5 from 5 to 7
+move 14 from 7 to 8
+move 1 from 9 to 4
+move 2 from 2 to 1
+move 3 from 5 to 3
+move 2 from 3 to 1
+move 1 from 4 to 6
+move 6 from 8 to 6
+move 6 from 8 to 3
+move 3 from 6 to 1
+move 2 from 8 to 9
+move 19 from 1 to 6
+move 3 from 9 to 3
+move 6 from 3 to 4
+move 6 from 6 to 2
+move 4 from 3 to 9
+move 1 from 7 to 9
+move 2 from 5 to 7
+move 5 from 9 to 6
+move 6 from 7 to 2
+move 11 from 2 to 5
+move 2 from 7 to 4
+move 4 from 4 to 3
+move 2 from 4 to 8
+move 12 from 1 to 2
+move 1 from 8 to 2
+move 8 from 5 to 7
+move 2 from 4 to 9
+move 2 from 7 to 1
+move 4 from 2 to 3
+move 1 from 8 to 6
+move 1 from 1 to 5
+move 2 from 9 to 1
+move 2 from 7 to 3
+move 2 from 5 to 2
+move 1 from 5 to 7
+move 2 from 7 to 8
+move 1 from 5 to 7
+move 5 from 3 to 4
+move 3 from 1 to 7
+move 1 from 2 to 4
+move 15 from 6 to 1
+move 4 from 4 to 1
+move 4 from 2 to 3
+move 8 from 3 to 2
+move 5 from 2 to 4
+move 1 from 8 to 6
+move 1 from 8 to 9
+move 1 from 3 to 1
+move 3 from 7 to 3
+move 5 from 7 to 6
+move 4 from 2 to 9
+move 6 from 2 to 6
+move 4 from 9 to 6
+move 12 from 1 to 5
+move 6 from 4 to 1
+move 1 from 3 to 6
+move 4 from 5 to 8
+move 7 from 5 to 3
+move 3 from 8 to 2
+move 1 from 2 to 3
+move 1 from 9 to 5
+move 1 from 4 to 5
+move 1 from 8 to 5
+move 8 from 6 to 9
+move 10 from 1 to 4
+move 3 from 6 to 1
+move 9 from 3 to 6
+move 1 from 3 to 8
+move 1 from 2 to 4
+move 6 from 9 to 1
+move 1 from 1 to 4
+move 10 from 1 to 6
+move 1 from 8 to 6
+move 13 from 6 to 7
+move 1 from 2 to 1
+move 1 from 9 to 6
+move 9 from 7 to 5
+move 1 from 9 to 4
+move 3 from 7 to 1
+move 3 from 5 to 6
+move 10 from 4 to 7
+move 5 from 6 to 5
+move 3 from 4 to 5
+move 13 from 6 to 9
+move 7 from 5 to 3
+move 6 from 3 to 2
+move 5 from 6 to 4
+move 4 from 2 to 8
diff --git a/2022/day5/ref.txt b/2022/day5/ref.txt
new file mode 100644
index 0000000..84933bb
--- /dev/null
+++ b/2022/day5/ref.txt
@@ -0,0 +1,9 @@
+ [D]
+[N] [C]
+[Z] [M] [P]
+ 1 2 3
+
+move 1 from 2 to 1
+move 3 from 1 to 3
+move 2 from 2 to 1
+move 1 from 1 to 2
diff --git a/2022/day5/ref_mod.txt b/2022/day5/ref_mod.txt
new file mode 100644
index 0000000..baec122
--- /dev/null
+++ b/2022/day5/ref_mod.txt
@@ -0,0 +1,8 @@
+ZN
+MCD
+P
+
+move 1 from 2 to 1
+move 3 from 1 to 3
+move 2 from 2 to 1
+move 1 from 1 to 2