puzzle_3.apl (563B)
1 #! /usr/bin/apl --script 2 3 input← ⎕FIO[49] 'files/3.txt' 4 5 a← {⍵ = '1'} ¨ input 6 2⊥ x × 2⊥ ~x← ⊃ ((≢ input) ÷ 2) < +/a ⍝ part 1 7 8 o← { ⍺ { (⊃ ⍺ ⌷ (⊃ ((≢ ⍵ ) ÷ 2) > +/⍵ ) { (~ ⍣ ⍺) ⍵ } ¨ (⊂ ⍤1)⍉ ⊃ ⊃ ⍵ ) / ⍵ } ⍣ ((⍴ ⍵ ) > 1) ⍵ } 9 c← { ⍺ { (⊃ ⍺ ⌷ (⊃ ((≢ ⍵ ) ÷ 2) ≤ +/⍵ ) { (~ ⍣ ⍺) ⍵ } ¨ (⊂ ⍤1)⍉ ⊃ ⊃ ⍵ ) / ⍵ } ⍣ ((⍴ ⍵ ) > 1) ⍵ } 10 11 (2⊥ s ⍴ ∊ o/(r + 1),⊂ a) × (2⊥ s ⍴ ∊ c/(1 + r← (⌽ (⍳s← ⍴ ↑ a) - 1)),⊂ a) ⍝ part 2 12 13 )OFF