defmodule Aoc2023.Day6 do use Aoc2023 def parse(input) do input |> lines |> Enum.map(pipe( String.split(":") |> Enum.at(1) )) end def part1(input) do input |> Enum.map(pipe( String.split() |> Enum.map(&String.to_integer/1) )) |> Enum.zip() |> Enum.map(fn {time, dist} -> 1..time |> Enum.map(&(&1 * (time - &1))) |> Enum.filter(&(&1 > dist)) |> length end) |> Enum.product() end def part2(input) do [time, dist] = input |> Enum.map(pipe(String.replace(~r(\s+), "") |> String.to_integer())) 1..(time) |> Stream.map(&(&1 * (time - &1))) |> Stream.filter(&(&1 > dist)) |> Enum.count end end