<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="379407" data-post-id="379407">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="BartOtten" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/BartOtten/120/25440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  BartOtten
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Don’t beat yourself up over it. I came to it after my first attempt became too complex. Lost quite some time on that dead track.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379407" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-379407" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379407"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="379410" data-post-id="379410">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="vkryukov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/vkryukov/120/39604_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  vkryukov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>One the plus side, you were solving a harder problem than everyone else (I sense a bunch of folks, me included, were a bit underwhelmed by the simplicity of Day 5’s problem), so you had more fun than the rest of us! <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379410" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-379410" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379410"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="379411" data-post-id="379411">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lkuty" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lkuty/120/34879_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lkuty
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<pre data-code-wrap="elixir"><code class="lang-elixir">#!/usr/bin/env elixir

# Advent of Code 2025. Day 5

Mix.install([
  {:nimble_parsec, "~&gt; 1.4.2"},
])

defmodule M do
  import NimbleParsec

  parse = repeat(
    integer(min: 1)
    |&gt; ignore(string("-"))
    |&gt; integer(min: 1)
    |&gt; tag(:range)
    |&gt; ignore(string("\n"))
  )
  |&gt; ignore(string("\n"))
  |&gt; repeat(
    integer(min: 1)
    |&gt; unwrap_and_tag(:id)
    |&gt; ignore(string("\n"))
  )

  defparsec :parse, parse

  # don't know if there is a way to get ranges and ids directly from NimbleParsec
  # transform() allows us to extract them
  def transform([], ranges, ids), do: {ranges, ids}
  def transform([{:range, [lo,hi]} | lst], ranges, ids), do: transform(lst, [lo..hi | ranges], ids)
  def transform([{:id, id} | lst], ranges, ids), do: transform(lst, ranges, [id | ids])

  def union(lo1.._hi1//1 = range1, lo2.._hi2//1 = range2) when lo2 &lt; lo1 do
    union(range2, range1)
  end
  def union(lo1..hi1//1, lo2..hi2//1) when lo2 == hi1+1 do
    lo1..hi2
  end
  def union(_lo1..hi1//1, lo2.._hi2//1) when hi1 &lt; lo2 do
    false # cannot union the ranges
  end
  def union(lo1..hi1//1, lo2..hi2//1) when lo2 &gt;= lo1 and lo2 &lt;= hi1 and hi2 &lt;= hi1 do
    lo1..hi1
  end
  def union(lo1..hi1//1, lo2..hi2//1) when hi1 &gt;= lo2 and hi1 &lt;= hi2 or lo2 &gt;= lo1 and lo2 &lt;= hi1 do
    lo1..hi2
  end

  def add([], range_to_add, disjoint_ranges), do: [range_to_add | disjoint_ranges]
  def add([range | ranges], range_to_add, disjoint_ranges) do
    # Try to union both ranges
    case union(range, range_to_add) do
      false -&gt; add(ranges, range_to_add, [range | disjoint_ranges])
      range -&gt; add(disjoint_ranges++ranges, range, []) # retry to add the new range
    end
  end
end

{ranges, ids} = File.read!("../day05.txt")
  |&gt; M.parse()
  |&gt; then(fn {:ok, lst, "", %{}, _, _} -&gt; lst end)
  |&gt; M.transform([], [])

# Part 1
Enum.count(ids, fn id -&gt; Enum.any?(ranges, fn range -&gt; id in range end) end)
|&gt; IO.inspect(label: "Day 5. Part 1")

# Part 2
ranges
|&gt; Enum.reduce([], fn range, ranges -&gt; M.add(ranges, range, []) end)
|&gt; Enum.map(&amp;Range.size/1)
|&gt; Enum.sum()
|&gt; IO.inspect(label: "Day 5. Part 2")
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379411" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-379411" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379411"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="379459" data-post-id="379459">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KeithFrost" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KeithFrost/120/33263_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KeithFrost
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-379459-h-2025-dec-05-1" class="anchor" href="#p-379459-h-2025-dec-05-1" aria-label="Heading link" rel="nofollow"></a>2025 Dec 05</h1>
<h2><a name="p-379459-cafeteria-2" class="anchor" href="#p-379459-cafeteria-2" aria-label="Heading link" rel="nofollow"></a>Cafeteria</h2>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Cafeteria do
  defp parse_range(line) do
    case Regex.run(~r"(\d+)-(\d+)", line) do
      [_match, min_str, max_str] -&gt;
        {String.to_integer(min_str), String.to_integer(max_str)}
    end
  end

  defp parse_ids(id_lines, acc \\ []) do
    case id_lines do
      [] -&gt;
        acc
      ["" | _] -&gt;
        acc
      [line | rest] -&gt;
        acc = [String.to_integer(String.trim(line)) | acc]
        parse_ids(rest, acc)
    end
  end

  def parse(lines) do
    {range_lines, id_lines} = Enum.split_while(lines, fn line -&gt; String.trim(line) != "" end)
    ranges = Enum.map(range_lines, &amp;parse_range/1)
      |&gt; Enum.sort()
    ids = parse_ids(tl(id_lines))
    {ranges, Enum.reverse(ids)}
  end

  def id_covered?(id, ranges) do
    case ranges do
      [{minr, maxr} | rest] -&gt;
        cond do
          minr &gt; id -&gt;
            false
          maxr &gt;= id -&gt;
            true
          true -&gt;
            id_covered?(id, rest)
        end
      [] -&gt;
        false
    end
  end  
end
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">{test_ranges, test_ids} = """
3-5
10-14
16-20
12-18

1
5
8
11
17
32
""" |&gt; String.split("\n")
  |&gt; Cafeteria.parse()
  |&gt; IO.inspect()

Enum.filter(test_ids, fn id -&gt; Cafeteria.id_covered?(id, test_ranges) end)
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">{input_ranges, input_ids} = File.stream!(__DIR__ &lt;&gt; "/dec-05-input.txt")
  |&gt; Cafeteria.parse()
Enum.filter(input_ids, fn id -&gt; Cafeteria.id_covered?(id, input_ranges) end)
  |&gt; Enum.count()
</code></pre>
<h2><a name="p-379459-part-2-3" class="anchor" href="#p-379459-part-2-3" aria-label="Heading link" rel="nofollow"></a>Part 2</h2>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Cafeteria2 do
  def merge_ranges(ranges, merged_ranges \\ []) do
    case ranges do
      [] -&gt;
        Enum.reverse(merged_ranges)
      [{minr, maxr} | rest] -&gt;
        case merged_ranges do 
          [] -&gt;
            merge_ranges(rest, [{minr, maxr}])
          [{min_mr, max_mr} | rest_merged] -&gt;
            if max_mr &lt; minr do
              merge_ranges(rest, [{minr, maxr}, {min_mr, max_mr} | rest_merged])
            else  # merge ranges
              merge_ranges(rest, [{min_mr, max(maxr, max_mr)} | rest_merged])
            end
        end
    end
  end

  def sum_ranges(ranges) do
    merge_ranges(ranges)
      |&gt; Enum.reduce(0, fn {minr, maxr}, sum -&gt;
        sum + maxr - minr + 1
      end)
  end
end
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">Cafeteria2.sum_ranges(input_ranges)
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379459" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-379459" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379459"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="379504" data-post-id="379504">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="aloisdg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/aloisdg/120/39584_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  aloisdg
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Part 1</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[one, two] =
  File.read!("ids.txt")
  |&gt; String.split("\n\n")

ranges = one
  |&gt; String.split("\n")
  |&gt; Enum.map(fn x -&gt; x |&gt; String.split("-") |&gt; Enum.map(&amp;String.to_integer/1) end)

two
  |&gt; String.split("\n")
  |&gt; Enum.map(&amp;String.to_integer/1)
  |&gt; Enum.count(&amp;(Enum.any?(ranges, fn [a, b] -&gt; a &lt;= &amp;1 and &amp;1 &lt;= b end)))
  |&gt; IO.inspect
</code></pre>
<p>Part 2</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[one, _] =
  File.read!("ids.txt")
  |&gt; String.split("\n\n")

ranges = one
  |&gt; String.split("\n")
  |&gt; Enum.map(fn x -&gt; x |&gt; String.split("-") |&gt; Enum.map(&amp;String.to_integer/1) end)

defmodule Aoc do
  def touch?([x1, x2], [y1, y2]), do: max(x1, y1) - min(x2, y2) &lt;= 1

  def merge([x1, x2], [y1, y2]), do: [Enum.min([x1, x2, y1, y2]), Enum.max([x1, x2, y1, y2])]

  def loop(ranges, previous) when ranges == previous, do: ranges

  def loop(ranges, _) do
    Enum.map(ranges, fn range -&gt;
      ranges
      |&gt; Enum.filter(&amp;(touch?(range, &amp;1)))
      |&gt; Enum.reduce(range, &amp;(merge(&amp;1, &amp;2)))
    end)
    |&gt; Enum.uniq
    |&gt; loop(ranges)
  end
end

Aoc.loop(ranges, [])
|&gt; Enum.map(fn [a, b]-&gt; b - a + 1 end)
|&gt; Enum.sum
|&gt; IO.inspect

</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379504" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-379504" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379504"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="379628" data-post-id="379628">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adamu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamu/120/31482_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adamu
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just throwing mine in the pot - part 2 completes in 0.1ms on an old i5.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def part2(ranges) do
  ranges
  |&gt; Enum.sort_by(&amp; &amp;1.first)
  |&gt; Enum.reduce([hd(ranges)], fn b, [a | rest] = disjoint -&gt;
    if Range.disjoint?(a, b) do
      [b | disjoint]
    else
      [min(a.first, b.first)..max(a.last, b.last) | rest]
    end
  end)
  |&gt; Enum.sum_by(&amp;Range.size/1)
end
</code></pre>
<p><a href="https://git.adamu.jp/adam/AdventOfCode/src/branch/main/2025/day5.exs" class="onebox" target="_blank" rel="noopener nofollow ugc">https://git.adamu.jp/adam/AdventOfCode/src/branch/main/2025/day5.exs</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379628" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-379628" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379628"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="379891" data-post-id="379891">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="al2o3cr" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/al2o3cr/120/3457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  al2o3cr
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><code>Stream.transform</code> is slightly too general for this, but it’s fun to use:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[ranges_string, _ingredients_string] =
  File.read!("input.txt")
  |&gt; String.split("\n\n")

ranges_string
|&gt; String.split("\n")
|&gt; Enum.map(&amp;Regex.run(~r/(\d+)-(\d+)/, &amp;1, capture: :all_but_first))
|&gt; Enum.map(fn [a, b] -&gt; Range.new(String.to_integer(a), String.to_integer(b)) end)
|&gt; Enum.sort()
|&gt; Stream.transform(
  fn -&gt; nil end,
  fn r, last_r -&gt;
    cond do
      is_nil(last_r) -&gt;
        {[], r}
      Range.disjoint?(r, last_r) -&gt;
        {[last_r], r}
      true -&gt;
        {[], Range.new(min(r.first, last_r.first), max(r.last, last_r.last))}
    end
  end,
  fn last_r -&gt;
    {[last_r], nil}
  end,
  fn _ -&gt; nil end
)
|&gt; Stream.map(&amp;Range.size/1)
|&gt; Enum.sum()
|&gt; IO.inspect()
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379891" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-379891" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379891"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="379906" data-post-id="379906">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="billylanchantin" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/billylanchantin/120/28428_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  billylanchantin
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>For part 2, I flatten a list of range firsts and lasts and keep a running total of how many ranges overlap our place in the list.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Day05 do
  def part1(file) do
    {ranges, ids} = parse(file)
    Enum.count(ids, fn id -&gt; Enum.any?(ranges, &amp;(id in &amp;1)) end)
  end

  def part2(file) do
    {ranges, _} = parse(file)
    firsts = Enum.frequencies_by(ranges, &amp; &amp;1.first)
    lasts = Enum.frequencies_by(ranges, &amp;(&amp;1.last + 1))

    Enum.sort(Map.keys(firsts) ++ Map.keys(lasts))
    |&gt; Enum.scan({0, 0}, fn x, {_, c} -&gt; {x, c + (firsts[x] || 0) - (lasts[x] || 0)} end)
    |&gt; Enum.chunk_every(2, 1, :discard)
    |&gt; Enum.sum_by(fn [{a, count}, {b, _}] -&gt; if count &gt; 0, do: b - a, else: 0 end)
  end

  def parse(file) do
    [rngs, ids] = file |&gt; File.read!() |&gt; split("\n\n") |&gt; Enum.map(&amp;split(&amp;1, "\n"))
    {Enum.map(rngs, &amp;to_rng/1), Enum.map(ids, &amp;to_int/1)}
  end

  def split(str, on), do: String.split(str, on, trim: true)
  def to_int(str), do: str |&gt; Integer.parse() |&gt; elem(0)
  def to_rng(str), do: str |&gt; split("-") |&gt; Enum.map(&amp;to_int/1) |&gt; then(&amp;apply(Range, :new, &amp;1))
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379906" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/advent-of-code-2025-day-5/73555/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-379906" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379906"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>