結果
問題 |
No.3112 Decrement or Mod Game
|
ユーザー |
|
提出日時 | 2025-04-18 22:36:47 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 874 bytes |
コンパイル時間 | 148 ms |
コンパイル使用メモリ | 12,160 KB |
実行使用メモリ | 275,440 KB |
最終ジャッジ日時 | 2025-04-18 22:37:08 |
合計ジャッジ時間 | 6,758 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | TLE * 5 -- * 60 |
ソースコード
import sys sys.setrecursionlimit(10**7) from functools import lru_cache @lru_cache(None) def win(a: int, b: int) -> bool: # ensure a >= b by swapping if needed if a < b: return not win(b, a) # if mod‐move kills your pile, you win instantly if a % b == 0: return True # 1) try the mod‐move → (b, a % b) r = a % b if not win(b, r): return True # 2) try the decrement‐move → (b, a-1) # opponent sees (b, a-1), so we win if that state is losing if a - 1 < b: # roles swap again inside win() if not win(a - 1, b): return True else: if not win(b, a - 1): return True # no winning move return False def main(): A, B = map(int, sys.stdin.read().split()) print("Alice" if win(A, B) else "Bob") if __name__ == "__main__": main()