names←{𝕩.name}¨𝕩
flows←{𝕩.flow}¨𝕩
tunnelses←{names⊐⥊⋈˘𝕩.tunnels}¨𝕩
+ tunnels←{⊑𝕨∊𝕩⊑tunnelses}⌜˜↕≠𝕩
Open←{1⌾(𝕩⊸⊑)𝕨}
Search←{
- 𝕊⟨0,·,·⟩: 0;
- 𝕊⟨time,·,vs⟩: ∧´vs? time×+´vs/flows;
- 𝕊⟨time,here,vs⟩:
- •Show ⟨time,here,vs⟩
+ 𝕊⟨0,·,·,·⟩: 0;
+ 𝕊⟨time,·,vs,·⟩: ∧´vs? time×+´vs/flows;
+ 𝕊⟨time,here,vs,visited⟩:
+ #•Show ⟨time,here,vs,visited⟩
time-↩1
- (+´vs/flows)+⌈´⟨Search⟨time,here,vs Open here⟩⟩∾{
- Search⟨time,𝕩,vs⟩
- }¨here⊑tunnelses
+ (+´vs/flows)+⌈´⟨Search⟨time,here,vs Open here,0¨visited⟩⟩∾{
+ Search⟨time,𝕩,vs,visited Open here⟩
+ }¨/(here⊏tunnels)∧¬visited
}
- Search⟨30,0,0¨𝕩⟩
+ Search⟨19,0,0¨𝕩,0¨𝕩⟩
}
•Show Main Prep¨ •file.Lines ⊑•args