結果

問題 No.805 UMG
コンテスト
ユーザー nao22b
提出日時 2019-04-14 15:36:31
言語 Elixir
(1.19.5)
コンパイル:
elixirc _filename_
実行:
elixir -e Main.main
結果
TLE  
実行時間 -
コード長 834 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 715 ms
コンパイル使用メモリ 76,700 KB
実行使用メモリ 80,772 KB
最終ジャッジ日時 2026-05-13 01:39:31
合計ジャッジ時間 11,441 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 12 TLE * 1 -- * 12
権限があれば一括ダウンロードができます
コンパイルメッセージ
warning: 1..-1 has a default step of -1, please write 1..-1//-1 instead
  Main.exs:12: Main.find_m/2

warning: 1..-1 has a default step of -1, please write 1..-1//-1 instead
  Main.exs:23: Main.find_u/1

ソースコード

diff #
raw source code

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