about summary refs log tree commit diff
path: root/day04.bqn
blob: 8f1cc0499d92a3c9e803611776047643d8839f0b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
str←•Import"bqn-libs/strings.bqn"

draws‿cards ← (⊑⋈1⊸↓) str.lf‿str.lf str.Split •FChars"day04"
draws ↩ > •BQN¨ ',' str.Split draws
cards ↩ >> {{•BQN¨ (⊢ /˜ (1⌊≠)¨) ' '⊸str.Split 𝕩}¨ str.lf⊸str.Split 𝕩}¨ ¯1↓cards

Cross ← { ¯1+(1+𝕩)×𝕩≠𝕨 }
Won ← { ∨´1=(×˝-𝕩)∾(×˝⍉-𝕩) }

winners ← {⊐⟜1 Won¨ (<𝕩) Cross˜` draws}˘ cards

•Out (⌊´winners)⊑draws×+´+˝0⌈((⊑⍋winners)⊏cards) Cross´ (1+⌊´winners)↑draws
•Out (⌈´winners)⊑draws×+´+˝0⌈((⊑⍒winners)⊏cards) Cross´ (1+⌈´winners)↑draws