diff --git a/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp.Lib/Day10.fs b/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp.Lib/Day10.fs index 27bf687..570d830 100644 --- a/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp.Lib/Day10.fs +++ b/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp.Lib/Day10.fs @@ -137,31 +137,38 @@ module Day10 = let floodFill (stackBuf : ResizeArray<_>) (s : Arr2D) (currX : int) (currY : int) = stackBuf.Clear () - stackBuf.Add (currX, currY) + stackBuf.Add currX + stackBuf.Add currY while stackBuf.Count > 0 do - let currX, currY = stackBuf.[stackBuf.Count - 1] + let currY = stackBuf.[stackBuf.Count - 1] + stackBuf.RemoveAt (stackBuf.Count - 1) + let currX = stackBuf.[stackBuf.Count - 1] stackBuf.RemoveAt (stackBuf.Count - 1) if currX > 0 then if Arr2D.get s (currX - 1) currY = 0uy then Arr2D.set s (currX - 1) currY 2uy - stackBuf.Add ((currX - 1, currY)) + stackBuf.Add (currX - 1) + stackBuf.Add currY if currX < s.Width - 1 then if Arr2D.get s (currX + 1) currY = 0uy then Arr2D.set s (currX + 1) currY 2uy - stackBuf.Add ((currX + 1, currY)) + stackBuf.Add (currX + 1) + stackBuf.Add currY if currY > 0 then if Arr2D.get s currX (currY - 1) = 0uy then Arr2D.set s currX (currY - 1) 2uy - stackBuf.Add ((currX, currY - 1)) + stackBuf.Add currX + stackBuf.Add (currY - 1) if currY < s.Height - 1 then if Arr2D.get s currX (currY + 1) = 0uy then Arr2D.set s currX (currY + 1) 2uy - stackBuf.Add ((currX, currY + 1)) + stackBuf.Add currX + stackBuf.Add (currY + 1) let print (s : Arr2D) = for y = 0 to s.Height - 1 do