Skip to content

Commit 168499c

Browse files
Update docs on Wed Dec 18 09:17:32 UTC 2024
1 parent 0021dfa commit 168499c

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

2024/18/index.html

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ <h2 id="problem-name">RAM Run</h2>
290290
using System.Linq;
291291
using System.Text.RegularExpressions;
292292
using System.Numerics;
293+
using AngleSharp.Common;
293294

294295
[ProblemName(&quot;RAM Run&quot;)]
295296
class Solution : Solver {
@@ -316,27 +317,25 @@ <h2 id="problem-name">RAM Run</h2>
316317
int? Distance(IEnumerable&lt;Complex&gt; blocks) {
317318
// our standard priority queue based path finding
318319

319-
var blockSet = blocks.ToHashSet();
320320
var size = 70;
321-
var goal = size + size * Complex.ImaginaryOne;
321+
var (start, goal) = (0, size + size * Complex.ImaginaryOne);
322+
var blocked = blocks.Concat(start).ToHashSet();
323+
322324
var q = new PriorityQueue&lt;Complex, int&gt;();
323-
q.Enqueue(0, 0);
324-
var seen = new HashSet&lt;Complex&gt;(0);
325-
325+
q.Enqueue(start, 0);
326326
while (q.TryDequeue(out var pos, out var dist)) {
327327
if (pos == goal) {
328328
return dist;
329-
} else {
330-
foreach (var dir in new[] { 1, -1, Complex.ImaginaryOne, -Complex.ImaginaryOne }) {
331-
var posT = pos + dir;
332-
if (!seen.Contains(posT) &amp;&amp;
333-
!blockSet.Contains(posT) &amp;&amp;
334-
0 &lt;= posT.Imaginary &amp;&amp; posT.Imaginary &lt;= size &amp;&amp;
335-
0 &lt;= posT.Real &amp;&amp; posT.Real &lt;= size
336-
) {
337-
q.Enqueue(posT, dist + 1);
338-
seen.Add(posT);
339-
}
329+
}
330+
331+
foreach (var dir in new[] { 1, -1, Complex.ImaginaryOne, -Complex.ImaginaryOne }) {
332+
var posT = pos + dir;
333+
if (!blocked.Contains(posT) &amp;&amp;
334+
0 &lt;= posT.Imaginary &amp;&amp; posT.Imaginary &lt;= size &amp;&amp;
335+
0 &lt;= posT.Real &amp;&amp; posT.Real &lt;= size
336+
) {
337+
q.Enqueue(posT, dist + 1);
338+
blocked.Add(posT);
340339
}
341340
}
342341
}

0 commit comments

Comments
 (0)