ABC133C - Remainder Minimization 2019
問題
回答1
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
[l, r] =
input
|> String.trim()
|> split_words()
|> Enum.map(&String.to_integer/1)
if r - l >= 2019 do
0
else
[nl, nr] =
[l, r]
|> Enum.map(&rem(&1, 2019))
|> Enum.sort()
for i <- nl..(nr - 1),
j <- (i + 1)..nr do
rem(i * j, 2019)
end
|> Enum.min()
end
end
end
"""
2020 2040
"""
|> Main.solve()
|> then(&(&1 == 2))
"""
4 5
"""
|> Main.solve()
|> then(&(&1 == 20))
"""
332701087 1753412895
"""
|> Main.solve()
|> then(&(&1 == 0))