結果
| 問題 |
No.275 中央値を求めよ
|
| コンテスト | |
| ユーザー |
3qvwn
|
| 提出日時 | 2019-07-03 22:26:59 |
| 言語 | Elixir (1.18.1) |
| 結果 |
AC
|
| 実行時間 | 568 ms / 1,000 ms |
| コード長 | 751 bytes |
| コンパイル時間 | 1,080 ms |
| コンパイル使用メモリ | 63,260 KB |
| 実行使用メモリ | 55,632 KB |
| 最終ジャッジ日時 | 2024-12-31 03:15:10 |
| 合計ジャッジ時間 | 24,841 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 38 |
ソースコード
defmodule Main do
def main do
_ = IO.gets("")
sorted_list = IO.gets("") |> String.trim |> String.split |> Enum.map(&String.to_integer/1) |> Enum.sort
index = median_index(sorted_list)
median(sorted_list, index) |> IO.puts
end
def median(sorted_list, index) when is_integer(index) do
sorted_list |> Enum.at(index)
end
def median(sorted_list, index) when is_list(index) do
index |> Enum.map(&Enum.at(sorted_list, &1)) |> Enum.sum |> (fn sum -> sum/2 end).()
end
def median_index(sorted_list) do
list_count = sorted_list |> Enum.count
case list_count |> rem(2) do
0 -> list_count/2 - 0.5 |> (fn hoge -> [floor(hoge), ceil(hoge)] end).()
1 -> list_count/2 - 0.5 |> ceil
end
end
end
3qvwn