結果

問題 No.8042 本棚
ユーザー gemmaro
提出日時 2020-04-29 08:55:49
言語 Elixir
(1.18.1)
結果
AC  
実行時間 564 ms / 2,000 ms
コード長 679 bytes
コンパイル時間 988 ms
コンパイル使用メモリ 62,788 KB
実行使用メモリ 55,364 KB
最終ジャッジ日時 2024-12-31 04:49:50
合計ジャッジ時間 17,404 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

defmodule Main do
  def main do
    {n, _} =
      IO.read(:line)
      |> Integer.parse()

    1..n
    |> Enum.map(fn _ ->
      IO.read(:line)
      |> String.trim()
      |> String.split()
      |> (fn [s, i] -> {s, i, i |> id_to_num} end).()
    end)
    |> solve
    |> IO.puts()
  end

  def id_to_num(id) do
    case id do
      "iti" -> 1
      "ni" -> 2
      "san" -> 3
      "yon" -> 4
    end
  end

  def solve(books) do
    books
    |> Enum.sort(fn {s, _, i}, {t, _, j} ->
      cond do
        s == t -> i < j
        :else -> s < t
      end
    end)
    |> Enum.map(fn {s, i, _} ->
      [s, i]
      |> Enum.join(" ")
    end)
    |> Enum.join("\n")
  end
end
0