Initial commit
This commit is contained in:
commit
f242d2b0df
420 changed files with 62521 additions and 0 deletions
23
2023/day22/day22.bqn
Normal file
23
2023/day22/day22.bqn
Normal file
|
@ -0,0 +1,23 @@
|
|||
⟨Split⟩←•Import"../bqn-libs/strings.bqn"
|
||||
≠bricks←⍋∘(2⊸⊑¨⌊˝¨)⊸⊏>¨•ParseFloat¨¨¨","⊸Split¨¨"~"⊸Split¨•FLines"test"
|
||||
|
||||
xmax‿ymax‿zmax←1+⌈˝∾´bricks
|
||||
h←xmax‿ymax⥊0
|
||||
segs←{(⊏𝕩)⊸+¨⥊↕1+-˜˝𝕩}¨2⊸↑˘¨bricks
|
||||
zs←1+2⊸⊑¨(⌈˝-⌊˝)¨bricks
|
||||
h{segs‿zs𝕊𝕩: zs⊸+⌾(segs⊸⊑)𝕩}´segs⋈¨zs
|
||||
|
||||
|
||||
Covered←∧´∘(2⊸↑˘⊸(⊏⊸≤∧1⊸⊏⊸≥))
|
||||
es←∾¯2⊸↑¨¨2⊸↓¨↑¨⥊/¨{Covered⟜𝕩¨bricks}¨↕xmax‿ymax
|
||||
a←1˙¨⌾(es⊸⊑)(∾˜≠bricks)⥊0
|
||||
|
||||
Fall←{𝕊bricks:
|
||||
newz←{1+0⌈´𝕩/2⊸⊑¨⌈˝¨bricks}¨<˘⍉a
|
||||
{𝕩+newz-2⊸⊑¨⌊˝¨bricks}⌾(2⊸⊏˘¨)bricks
|
||||
}
|
||||
#fallenbricks←Fall⍟zmax bricks
|
||||
fallenbricks←Fall{𝕊∘⊢⍟≢⟜𝔽𝕩} bricks
|
||||
es2←{1=|-´2⊸⊑¨⟨⌈˝,⌊˝⟩{𝕎𝕩}¨𝕩⊏fallenbricks}¨⊸/es
|
||||
b←1˙¨⌾(es2⊸⊑)(∾˜≠bricks)⥊0
|
||||
+´0=+˝(1≥+˝b)/⍉b
|
Loading…
Add table
Add a link
Reference in a new issue