about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2015-12-20 17:39:49 +0100
committerChristian Neukirchen <chneukirchen@gmail.com>2015-12-20 17:39:49 +0100
commit67faf96ffc32e8498bb7f90499bcc3e47fb7e0a3 (patch)
tree4b02b7b2096d1ba7cf4b2fa63d61226eaead66c6
parentbff8b596a3a6ff4b363801fa058f1f35bc328ecf (diff)
downloadadventofcode2015-67faf96ffc32e8498bb7f90499bcc3e47fb7e0a3.tar.gz
adventofcode2015-67faf96ffc32e8498bb7f90499bcc3e47fb7e0a3.tar.xz
adventofcode2015-67faf96ffc32e8498bb7f90499bcc3e47fb7e0a3.zip
day20
-rw-r--r--day20.k9
-rw-r--r--day20.rb26
2 files changed, 35 insertions, 0 deletions
diff --git a/day20.k b/day20.k
new file mode 100644
index 0000000..654ba49
--- /dev/null
+++ b/day20.k
@@ -0,0 +1,9 @@
+d:33100000;
+
+/ takes ages without a good guess. ;)
+
+e:{10*y*~x!y}
+(1+)/[{d>+/e[x]'!x+1};776150]
+
+e2:{(x<50*y)*11*y*~x!y}
+(1+)/[{d>+/e2[x]'!x+1};786235]
diff --git a/day20.rb b/day20.rb
new file mode 100644
index 0000000..c45c4ff
--- /dev/null
+++ b/day20.rb
@@ -0,0 +1,26 @@
+M = 33100000
+L = 1000000
+
+a = Array.new(L+1, 0)
+mj = 1_0000_0000
+
+1.upto(L) { |i|
+  i.step(L, i) { |j|
+    a[j] += 10*i
+    mj = [mj, j].min  if a[j] >= M
+  }
+}
+p mj
+
+a = Array.new(L+1, 0)
+mj = 1_0000_0000
+
+1.upto(L) { |i|
+  0.upto(50) { |jj|
+    j = i+i*jj
+    break if j > L
+    a[j] += 11*i
+    mj = [mj, j].min  if a[j] >= M
+  }
+}
+p mj