結果

問題 No.805 UMG
ユーザー nao22bnao22b
提出日時 2019-04-14 15:36:31
言語 Elixir
(1.16.2)
結果
TLE  
実行時間 -
コード長 834 bytes
コンパイル時間 4,222 ms
コンパイル使用メモリ 61,028 KB
実行使用メモリ 54,928 KB
最終ジャッジ日時 2024-04-29 10:54:33
合計ジャッジ時間 20,447 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 679 ms
54,564 KB
testcase_01 AC 887 ms
54,528 KB
testcase_02 AC 686 ms
54,328 KB
testcase_03 AC 678 ms
54,440 KB
testcase_04 AC 655 ms
54,652 KB
testcase_05 AC 685 ms
54,516 KB
testcase_06 AC 670 ms
54,084 KB
testcase_07 AC 784 ms
54,200 KB
testcase_08 AC 861 ms
54,324 KB
testcase_09 AC 741 ms
54,928 KB
testcase_10 AC 653 ms
54,312 KB
testcase_11 AC 752 ms
54,196 KB
testcase_12 AC 655 ms
54,704 KB
testcase_13 AC 866 ms
54,480 KB
testcase_14 AC 681 ms
54,308 KB
testcase_15 TLE -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
testcase_27 -- -
権限があれば一括ダウンロードができます

ソースコード

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