From: Ben Harris Date: Wed, 15 May 2024 15:53:02 +0000 (+0200) Subject: 15b: found constraining beacons X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=33033f649bcaa3bcf2c06a2943b6afccf24080ad;p=aoc-2022.git 15b: found constraining beacons --- diff --git a/15/15b.bqn b/15/15b.bqn new file mode 100644 index 0000000..3aaf97d --- /dev/null +++ b/15/15b.bqn @@ -0,0 +1,24 @@ +Split←{ + blocknums ← +`𝕨 + # Set entries in blocknums to -1 when they correspond with delimiters. + blocknums ↩ (¯1¨)⌾(𝕨⊸/) blocknums + blocknums⊔𝕩 +} + +Prep←{ + words←' '⊸=⊸Split 𝕩 + ⟨sx,sy,bx⟩←2↓¨¯1↓¨⟨2,3,8⟩⊏words + by←2↓9⊑words + •ParseFloat¨⟨sx,sy,bx,by⟩ +} + +Main←{𝕊data: + s←2↑˘data # Sensors + b←2↓˘data # Beacons + m←+´˘|s-b # Distances to nearest beacons + mt←m+⌜m # Sums of excluded ranges + dt←(<˘s){+´|𝕨-𝕩}⌜(<˘s) # Distances between sensors + 2=dt-mt # Beacon pairs that are precisely the right distance apart. +} + +•Show Main >Prep¨ •file.Lines ⊑•args