Submission #17143240


Source Code Expand

defmodule Main do
  def main do
    [x, n] =
      IO.read(:line) |> String.trim() |> String.split(" ") |> Enum.map(&String.to_integer/1)

    if n > 0 do
      IO.read(:line)
      |> String.trim()
      |> String.split(" ")
      |> Enum.map(&String.to_integer/1)
      |> solve(x)
      |> IO.puts()
    else
      IO.read(:line)

      solve([], x)
      |> IO.puts()
    end
  end

  @doc ~S"""
  https://atcoder.jp/contests/abc170/tasks/abc170_c

  ## Examples

      iex> Abc170C.solve([4, 7, 10, 6, 5], 6)
      8
      iex> Abc170C.solve([4, 7, 10, 6, 5], 10)
      9
      iex> Abc170C.solve([], 100)
      100

  """
  def solve([], x), do: x

  def solve(list, x) do
    0..100
    |> Enum.reduce_while(x, fn i, acc ->
      minus_one = x - i

      if !(minus_one in list) do
        {:halt, minus_one}
      else
        plus_one = x + i

        if !(plus_one in list) do
          {:halt, plus_one}
        else
          {:cont, acc}
        end
      end
    end)
  end
end

Submission Info

Submission Time
Task C - Forbidden List
User awesomey
Language Elixir (1.10.2)
Score 300
Code Size 1044 Byte
Status AC
Exec Time 420 ms
Memory 30956 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 15
Set Name Test Cases
Sample a01.txt, a02.txt, a03.txt
All a01.txt, a02.txt, a03.txt, b04.txt, b05.txt, b06.txt, b07.txt, b08.txt, b09.txt, b10.txt, b11.txt, b12.txt, b13.txt, b14.txt, b15.txt
Case Name Status Exec Time Memory
a01.txt AC 420 ms 30720 KiB
a02.txt AC 404 ms 30708 KiB
a03.txt AC 398 ms 30460 KiB
b04.txt AC 402 ms 30524 KiB
b05.txt AC 410 ms 30728 KiB
b06.txt AC 403 ms 30708 KiB
b07.txt AC 403 ms 30720 KiB
b08.txt AC 405 ms 30700 KiB
b09.txt AC 410 ms 30660 KiB
b10.txt AC 397 ms 30660 KiB
b11.txt AC 409 ms 30800 KiB
b12.txt AC 366 ms 30744 KiB
b13.txt AC 404 ms 30696 KiB
b14.txt AC 407 ms 30956 KiB
b15.txt AC 403 ms 30632 KiB