/ APL / 2021 / 04.apl
04.apl
1  input ← ⊃⎕NGET '../.cache/2021/4' 1
2  nums ← ⍎¨','(≠⊆⊢)⊃input
3  boards ← {{⍎¨' '(≠⊆⊢)⍵}¨¨({0≠≢⍵}¨⍵)⊆⍵}2↓input
4  ⎕ ← {i b←⍵⋄w←{({∨/(∧/¯1=⊢)¨⍵,↓⍉↑⍵}¨⍵)/⍵}b⋄0<≢w:((i-1)⊃nums)×+/(∊⊃w)~¯1⋄∇(1+i)({⍵=(i⊃nums):¯1⋄⍵}¨¨¨b)}1 boards
5  ⎕ ← {i b←⍵⋄w←{({∨/(∧/¯1=⊢)¨⍵,↓⍉↑⍵}¨⍵)/⍵}b⋄(0<≢w)∧1=≢b:((i-1)⊃nums)×+/(∊⊃w)~¯1⋄∇(1+i)({⍵=(i⊃nums):¯1⋄⍵}¨¨¨b~w)}1 boards