結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-27 08:31:07 |
| 言語 | Elixir (1.18.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 855 bytes |
| コンパイル時間 | 1,229 ms |
| コンパイル使用メモリ | 64,896 KB |
| 実行使用メモリ | 69,904 KB |
| 最終ジャッジ日時 | 2024-12-31 04:49:19 |
| 合計ジャッジ時間 | 178,092 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 5 WA * 1 TLE * 27 |
ソースコード
defmodule Main do
def main do
{n, _} =
IO.read(:line)
|> Integer.parse()
n
|> solve()
|> IO.puts()
end
def solve(n) do
solve_rec([1], n)
end
def solve_rec([h | t], n) do
c =
h
|> Integer.digits(2)
|> Enum.sum()
cond do
h + c == n ->
([h | t] |> length) + 1
true ->
[
if(h + c < n && !((h + c) in [h | t]),
do: solve_rec([h + c | [h | t]], n),
else: -1
),
if(h - c > 1 && !((h - c) in [h | t]),
do: solve_rec([h - c | [h | t]], n),
else: -1
)
]
|> Enum.filter(&(&1 != -1))
|> (fn l ->
cond do
l |> Enum.empty?() -> -1
true -> l |> Enum.min()
end
end).()
end
end
end