Powered by AppSignal & Oban Pro

ABC083B - Some Sums

submit_2.livemd

ABC083B - Some Sums

問題

https://atcoder.jp/contests/abs/tasks/abc083_b

回答2

defmodule Main do
  def main do
    :stdio
    |> IO.read(:all)
    |> solve()
    |> IO.puts()
  end

  defp split_words(words) do
    String.split(words, " ")
  end

  def solve(input) do
    [n, a, b] =
      input
      |> String.trim()
      |> split_words()
      |> Enum.map(&String.to_integer/1)

    1..n
    |> Enum.map(fn num ->
      sum =
        num
        |> Integer.digits()
        |> Enum.sum()

      if sum >= a && sum <= b do
        num
      else
        0
      end
    end)
    |> Enum.sum()
  end
end
"""
20 2 5
"""
|> Main.solve()
|> then(&(&1 == 84))
"""
10 1 2
"""
|> Main.solve()
|> then(&(&1 == 13))
"""
100 4 16
"""
|> Main.solve()
|> then(&(&1 == 4554))