summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xprog/aoc/23/9/1.py32
-rw-r--r--prog/aoc/23/9/in.txt3
2 files changed, 35 insertions, 0 deletions
diff --git a/prog/aoc/23/9/1.py b/prog/aoc/23/9/1.py
new file mode 100755
index 0000000..3d16c5c
--- /dev/null
+++ b/prog/aoc/23/9/1.py
@@ -0,0 +1,32 @@
+#!/usr/bin/python3
+data = []
+try:
+ while True:
+ data.append([[x for x in map(int, input().split(" "))]])
+except EOFError:
+ pass
+s = 0
+for d in data:
+ while len(set(d[-1])) != 1 or d[-1][0] != 0:
+ r = []
+ for idx in range(len(d[-1])-1):
+ r.append(d[-1][idx+1]-d[-1][idx])
+ d.append(r)
+ for idx in range(len(d)):
+ if idx == 0:
+ d[-1].append(0)
+ continue
+ idx = -idx-1
+ d[idx].append(d[idx][-1]+d[idx+1][-1])
+ s += d[0][-1]
+print(s)
+s2 = 0
+for d in data:
+ for idx in range(len(d)):
+ if idx == 0:
+ d[-1].insert(0, 0)
+ continue
+ idx = -idx-1
+ d[idx].insert(0, d[idx][0]-d[idx+1][0])
+ s2 += d[0][0]
+print(s2)
diff --git a/prog/aoc/23/9/in.txt b/prog/aoc/23/9/in.txt
new file mode 100644
index 0000000..539a763
--- /dev/null
+++ b/prog/aoc/23/9/in.txt
@@ -0,0 +1,3 @@
+0 3 6 9 12 15
+1 3 6 10 15 21
+10 13 16 21 30 45