結果

問題 No.3042 本棚
ユーザー gemmarogemmaro
提出日時 2020-04-29 08:55:49
言語 Elixir
(1.15.6)
結果
AC  
実行時間 570 ms / 2,000 ms
コード長 679 bytes
コンパイル時間 1,014 ms
コンパイル使用メモリ 55,396 KB
実行使用メモリ 50,484 KB
最終ジャッジ日時 2023-08-30 00:44:06
合計ジャッジ時間 18,477 ms
ジャッジサーバーID
(参考情報)
judge14 / judge15
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 563 ms
50,032 KB
testcase_01 AC 560 ms
49,244 KB
testcase_02 AC 562 ms
49,004 KB
testcase_03 AC 559 ms
49,724 KB
testcase_04 AC 562 ms
49,160 KB
testcase_05 AC 555 ms
49,268 KB
testcase_06 AC 559 ms
49,012 KB
testcase_07 AC 565 ms
49,164 KB
testcase_08 AC 561 ms
49,220 KB
testcase_09 AC 558 ms
49,904 KB
testcase_10 AC 558 ms
50,012 KB
testcase_11 AC 557 ms
49,064 KB
testcase_12 AC 557 ms
49,428 KB
testcase_13 AC 564 ms
49,272 KB
testcase_14 AC 563 ms
49,364 KB
testcase_15 AC 560 ms
49,004 KB
testcase_16 AC 557 ms
50,200 KB
testcase_17 AC 555 ms
49,172 KB
testcase_18 AC 570 ms
49,392 KB
testcase_19 AC 552 ms
49,988 KB
testcase_20 AC 551 ms
49,916 KB
testcase_21 AC 549 ms
49,680 KB
testcase_22 AC 555 ms
49,044 KB
testcase_23 AC 550 ms
49,192 KB
testcase_24 AC 552 ms
49,408 KB
testcase_25 AC 556 ms
49,648 KB
testcase_26 AC 550 ms
50,484 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