diff --git a/p23.dyalog b/p23.dyalog index 1a3e281..2136e20 100644 --- a/p23.dyalog +++ b/p23.dyalog @@ -3,7 +3,7 @@ p←↑⍎¨¨'-?\d+'⎕S'&'¨⊃⎕NGET'p23.txt'1 r←⊢/p ⋄ p←0 ¯1↓p +/{(⍵⌷r)≥+/|p-⍤1⊢⍵⌷p}⊃⍒r ⍝ part 1 -h←{+/r≥+/0⌈⍺-⍨|p-⍤1⊢⍵}¨ +h←{+/r≥+/0⌈⍺-⍨|p-⍤1⊢⍵} f←{(2*⌈2⍟⌈/,|p)(⍵ g)⊂3/0} -g←{0=≢w←⍵/⍨⍺⍺≤t←⍺ h ⍵:f⌈/t ⋄ ⍺=0:w ⋄ ⍺=1:0 ∇,(¯1+,⍳3/3)∘.+w ⋄ (⍺÷2)∇,((⍺÷2)ׯ1*,⍳3/2)∘.+w} +g←{0=≢w←⍵/⍨⍺⍺≤t←⍺ h¨⍵:f⌈/t ⋄ ⍺=0:w ⋄ ⍺=1:0 ∇,(¯1+,⍳3/3)∘.+w ⋄ (⍺÷2)∇,w∘.+(⍺÷2)ׯ1*,⍳3/2} ⌊/+/¨f≢p ⍝ part 2