結果

問題 No.3042 本棚
ユーザー gemmarogemmaro
提出日時 2020-04-29 08:55:49
言語 Elixir
(1.16.2)
結果
AC  
実行時間 606 ms / 2,000 ms
コード長 679 bytes
コンパイル時間 1,127 ms
コンパイル使用メモリ 62,796 KB
実行使用メモリ 55,108 KB
最終ジャッジ日時 2024-06-09 23:55:54
合計ジャッジ時間 18,690 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 587 ms
54,552 KB
testcase_01 AC 599 ms
54,128 KB
testcase_02 AC 604 ms
54,156 KB
testcase_03 AC 593 ms
53,984 KB
testcase_04 AC 594 ms
54,944 KB
testcase_05 AC 606 ms
54,524 KB
testcase_06 AC 598 ms
53,984 KB
testcase_07 AC 588 ms
54,928 KB
testcase_08 AC 578 ms
54,164 KB
testcase_09 AC 591 ms
54,412 KB
testcase_10 AC 588 ms
54,476 KB
testcase_11 AC 595 ms
54,760 KB
testcase_12 AC 596 ms
55,108 KB
testcase_13 AC 585 ms
53,984 KB
testcase_14 AC 599 ms
53,864 KB
testcase_15 AC 593 ms
54,364 KB
testcase_16 AC 598 ms
54,808 KB
testcase_17 AC 594 ms
53,728 KB
testcase_18 AC 580 ms
54,148 KB
testcase_19 AC 601 ms
54,364 KB
testcase_20 AC 588 ms
54,684 KB
testcase_21 AC 584 ms
54,120 KB
testcase_22 AC 583 ms
54,008 KB
testcase_23 AC 590 ms
53,976 KB
testcase_24 AC 584 ms
54,472 KB
testcase_25 AC 592 ms
54,140 KB
testcase_26 AC 601 ms
54,196 KB
権限があれば一括ダウンロードができます

ソースコード

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