chiark / gitweb /
16a: correct but slow exhaustive search
authorBen Harris <bjh21@bjh21.me.uk>
Tue, 21 May 2024 10:38:32 +0000 (12:38 +0200)
committerBen Harris <bjh21@bjh21.me.uk>
Tue, 21 May 2024 10:38:32 +0000 (12:38 +0200)
16/16a.bqn [new file with mode: 0644]

diff --git a/16/16a.bqn b/16/16a.bqn
new file mode 100644 (file)
index 0000000..a83e749
--- /dev/null
@@ -0,0 +1,25 @@
+Prep←{
+  name⇐2↑6↓𝕩
+  flow⇐•ParseFloat(𝕩∊"0123456789")/𝕩
+  tunnels⇐⟨∘,2⟩⥊3↓(𝕩∊('A'+↕('Z'-'A')))/𝕩
+}
+
+Main←{
+  names←{𝕩.name}¨𝕩
+  flows←{𝕩.flow}¨𝕩
+  tunnelses←{names⊐⥊⋈˘𝕩.tunnels}¨𝕩
+  Open←{1⌾(𝕩⊸⊑)𝕨}
+  Search←{
+    𝕊⟨0,·,·⟩: 0;
+    𝕊⟨time,·,vs⟩: ∧´vs? time×+´vs/flows;
+    𝕊⟨time,here,vs⟩:
+    •Show ⟨time,here,vs⟩
+    time-↩1
+    (+´vs/flows)+⌈´⟨Search⟨time,here,vs Open here⟩⟩∾{
+      Search⟨time,𝕩,vs⟩
+    }¨here⊑tunnelses
+  }
+  Search⟨30,0,0¨𝕩⟩
+}
+
+•Show Main Prep¨ •file.Lines ⊑•args