結果

問題 No.3112 Decrement or Mod Game
ユーザー Rira
提出日時 2025-04-20 14:49:00
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
MLE  
実行時間 -
コード長 786 bytes
コンパイル時間 834 ms
コンパイル使用メモリ 85,992 KB
実行使用メモリ 814,720 KB
最終ジャッジ日時 2025-04-20 14:49:06
合計ジャッジ時間 5,331 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other MLE * 1 -- * 64
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <unordered_map>
using namespace std;

unordered_map<string, string> dp;

string winner(long long a, long long b) {
    string key = to_string(a) + "," + to_string(b);
    if (dp.find(key) != dp.end()) {
        return dp[key];
    }

    if (a == 0) {
        dp[key] = "Bob";
        return "Bob";
    }
    if (b == 0) {
        dp[key] = "Alice";
        return "Alice";
    }

    if (winner(a - 1, b) == "Bob") {
        dp[key] = "Alice";
        return "Alice";
    }

    if (a >= b) {
        if (winner(a % b, b) == "Bob") {
            dp[key] = "Alice";
            return "Alice";
        }
    }

    dp[key] = "Bob";
    return "Bob";
}

int main() {
    long long A, B;
    cin >> A >> B;

    cout << winner(A, B) << endl;

    return 0;
}
0