From 33033f649bcaa3bcf2c06a2943b6afccf24080ad Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 15 May 2024 17:53:02 +0200 Subject: [PATCH] 15b: found constraining beacons --- 15/15b.bqn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 15/15b.bqn 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 -- 2.30.2