adventofcode

https://adventofcode.com/
Log | Files | Refs

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