From 63c07061a2dd1f4067ba215d41bb7254f1a29dba Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sun, 19 Dec 2021 17:21:15 +0100 Subject: day18 --- day18.bqn | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 day18.bqn (limited to 'day18.bqn') diff --git a/day18.bqn b/day18.bqn new file mode 100644 index 0000000..c469fa7 --- /dev/null +++ b/day18.bqn @@ -0,0 +1,27 @@ +d ← {•BQN ("⟨⟩"∾𝕩) ⊏˜ ("[]"∾𝕩) ⊐ 𝕩}¨•FLines"day18" + +Split ← { 𝕊 ⟨l,r⟩: { 𝕊 @: { 𝕊 @: @ ; 𝕊 r2: l‿r2 } Split r ; + 𝕊 l2: l2‿r } Split l ; + 𝕊 n: n ≥ 10 ? (⌊⋈⌈) n÷2 ; + @ } + +Addlm ← { n 𝕊 ⟨l,r⟩: ⟨n Addlm l, r⟩ ; n 𝕊 m : n + m } +Addrm ← { n 𝕊 ⟨l,r⟩: ⟨l, n Addrm r⟩ ; n 𝕊 m : n + m } + +Explode ← { + 4 𝕊 ⟨l,r⟩: 0‿l‿r ; + d 𝕊 ⟨l,r⟩: { 𝕊 @: { 𝕊 @: @ ; + 𝕊 ⟨r2,ln,rn⟩: ⟨ln Addrm l,r2⟩‿0‿rn } (d+1) Explode r ; + 𝕊 ⟨l2,ln,rn⟩: ⟨l2,rn Addlm r⟩‿ln‿0 } (d+1) Explode l ; + @ +} + +Reduce ← { 𝕊 t: { 𝕊 @: { 𝕊 @: t ; 𝕊 t3: Reduce t3 } Split t ; + 𝕊 t2: Reduce t2 } ⊑ 0 Explode t } + +Add ← Reduce∘⋈ + +Mag ← { 𝕊 ⟨l,r⟩: (3×Mag l)+(2×Mag r) ; 𝕊 n: n } + +•Show Mag Add˜´ ⌽ d +•Show ⌈´⥊Mag∘Add⌜˜ d -- cgit 1.4.1