結果
問題 |
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 = -1 end = -1 for i in range(len(s)): if s[i] == '(': stack.append(i) elif s[i] == ')': if not stack: return False # invalid, but input is valid popped = stack.pop() if not stack: start = popped end = i break if start == -1: return False # invalid, but input is valid h0 = 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 c else: # 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 False return 0 if is_winning(H) else 1 # Read input H = input().strip() print(determine_winner(H))