結果
問題 | No.2398 ヒドラ崩し |
ユーザー |
![]() |
提出日時 | 2025-03-26 15:50:53 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,478 bytes |
コンパイル時間 | 247 ms |
コンパイル使用メモリ | 82,312 KB |
実行使用メモリ | 374,168 KB |
最終ジャッジ日時 | 2025-03-26 15:51:54 |
合計ジャッジ時間 | 5,187 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 WA * 14 TLE * 1 |
ソースコード
def determine_winner(H):def is_winning(s):if not s:return False# Case 1: Ends with "()"if s.endswith("()"):h_prime = s[:-2]return not is_winning(h_prime)# Case 2: Decompose into h0 + "(" + h1 + ")"stack = []start = -1end = -1for i in range(len(s)):if s[i] == '(':stack.append(i)elif s[i] == ')':if not stack:return False # invalid, but input is validpopped = stack.pop()if not stack:start = poppedend = ibreakif start == -1:return False # invalid, but input is validh0 = s[:start]h1 = s[start+1:end]# Check if h1 can be decomposed into h1_prime + "()"if h1.endswith("()"):h1_prime = h1[:-2]a = is_winning(h0)c = not is_winning(h1_prime)return (not a) and celse:# Need to handle h1's decomposition, which may involve further cases# For the purpose of this problem, assume it's handled by recursion# This part may not be required for the given constraints# For now, return False (not sure)return Falsereturn 0 if is_winning(H) else 1# Read inputH = input().strip()print(determine_winner(H))