結果

問題 No.805 UMG
ユーザー nao22bnao22b
提出日時 2019-04-14 15:36:31
言語 Elixir
(1.16.2)
結果
TLE  
実行時間 -
コード長 834 bytes
コンパイル時間 4,789 ms
コンパイル使用メモリ 61,028 KB
実行使用メモリ 70,564 KB
最終ジャッジ日時 2024-11-18 13:46:19
合計ジャッジ時間 69,034 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 661 ms
55,052 KB
testcase_01 AC 864 ms
54,256 KB
testcase_02 AC 656 ms
54,888 KB
testcase_03 AC 658 ms
54,756 KB
testcase_04 AC 636 ms
54,384 KB
testcase_05 AC 639 ms
54,636 KB
testcase_06 AC 644 ms
54,372 KB
testcase_07 AC 739 ms
55,308 KB
testcase_08 AC 824 ms
54,636 KB
testcase_09 AC 736 ms
55,104 KB
testcase_10 AC 654 ms
54,504 KB
testcase_11 AC 716 ms
54,372 KB
testcase_12 AC 650 ms
55,064 KB
testcase_13 AC 825 ms
54,576 KB
testcase_14 AC 634 ms
54,632 KB
testcase_15 TLE -
testcase_16 TLE -
testcase_17 TLE -
testcase_18 TLE -
testcase_19 TLE -
testcase_20 TLE -
testcase_21 TLE -
testcase_22 TLE -
testcase_23 TLE -
testcase_24 TLE -
testcase_25 TLE -
testcase_26 TLE -
testcase_27 TLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

defmodule Main do
    def is_g(s, diff) do
        cond do
            diff >= String.length(s) -> 0
            String.at(s, diff) == "G" -> 1
            true -> 0
        end
    end

    def find_m("", _), do: 0
    def find_m(s, diff) do
        remain = String.slice(s, 1..-1)
        case String.at(s, 0) do
            "M" -> is_g(remain, diff) + find_m(remain, diff + 1)
            _ -> find_m(remain, diff + 1)
        end
    end


    # U
    def find_u(""), do: 0
    def find_u(s) do
        remain = String.slice(s, 1..-1)
        case String.at(s, 0) do
            "U" -> find_m(remain, 0) + find_u(remain)
            _ -> find_u(remain)
        end
    end

    def solve(s) do
        find_u(s)
    end


    def main do
        _ = IO.gets("")
        IO.gets("") |> String.trim |> solve |> IO.puts
    end
end

0