From 51c5f0b927a36e201cdfadd5d31de0c16e0bf7f4 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Sat, 22 Dec 2018 11:25:58 +0000 Subject: [PATCH] Day 22 solution, very slow. --- p22.dyalog | 13 +++++++++++++ p22.txt | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 p22.dyalog create mode 100644 p22.txt diff --git a/p22.dyalog b/p22.dyalog new file mode 100644 index 0000000..1a26f83 --- /dev/null +++ b/p22.dyalog @@ -0,0 +1,13 @@ +⎕IO←0 +p←⍎¨¨'\d+'⎕S'&'¨⊃⎕NGET'p22.txt'1 +depth←⊃⊃p ⋄ target←⊃⌽p +el←20183|depth+⊢ +gi←{⍵≡0 0:0 ⋄ ⍵≡target:0 ⋄ 0∊⍵:16807 48271+.×⍵ ⋄ (el g[⊂⍵-0 1])×el g[⊂⍵-1 0]} +g←0⍴⍨⌈7×target ⋄ {g[⊂⍵]←gi ⍵}¨⍳⍴g +t←3|el g ⍝ type ++/,t↑⍨1+target ⍝ part 1 + +m←0@(⊂0 0 1)⊢1E6⍴⍨3,⍨⍴t ⍝ last axis: 0=neither, 1=torch, 2=climbing gear +mv←{z←1+(1e6⍪⍨1↓⍵)⌊(1e6⍪¯1↓⍵)⌊(1e6,[1]⍨0 1↓⍵)⌊(1e6,[1]0 ¯1↓⍵) ⋄ z[t,¨⍨⍳⍴t]←1E6 ⋄ ⍵⌊z} ⍝ move +cg←{z←⍵⌊⍤1 0⊢7+⌊/⍵ ⋄ z[t,¨⍨⍳⍴t]←1E6 ⋄ z} ⍝ change gear +(target,1)⌷cg∘mv⍣≡m ⍝ part 2 diff --git a/p22.txt b/p22.txt new file mode 100644 index 0000000..be7696f --- /dev/null +++ b/p22.txt @@ -0,0 +1,2 @@ +depth: 8112 +target: 13,743