結果
| 問題 |
No.79 過小評価ダメ・ゼッタイ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-04-19 19:22:02 |
| 言語 | Elixir (1.18.1) |
| 結果 |
AC
|
| 実行時間 | 681 ms / 5,000 ms |
| コード長 | 768 bytes |
| コンパイル時間 | 1,078 ms |
| コンパイル使用メモリ | 62,888 KB |
| 実行使用メモリ | 101,020 KB |
| 最終ジャッジ日時 | 2024-12-31 04:29:13 |
| 合計ジャッジ時間 | 17,367 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 22 |
ソースコード
defmodule Main do
def main do
IO.read(:line)
IO.read(:line)
|> String.trim()
|> String.split()
|> Enum.map(&String.to_integer/1)
|> solve
|> IO.puts()
end
def solve(l) do
l
|> extract
|> decide
end
def extract(l) do
extract_rec(l |> Enum.group_by(& &1) |> Map.to_list(), %{}, 0)
end
def extract_rec([], r, _) do
r
end
def extract_rec([{k, v} | t], r, m) do
cond do
v |> length >= m -> extract_rec(t, r |> Map.put(k, v |> length), v |> length)
true -> extract_rec(t, r, m)
end
end
def decide(m) do
n = m |> Map.values() |> Enum.max()
m
|> Map.to_list()
|> Enum.filter(fn {_, v} -> v == n end)
|> Enum.map(fn {k, _} -> k end)
|> Enum.max()
end
end