結果
問題 |
No.2927 Reverse Polish Equation
|
ユーザー |
![]() |
提出日時 | 2024-10-17 20:47:32 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,025 bytes |
コンパイル時間 | 524 ms |
コンパイル使用メモリ | 82,384 KB |
実行使用メモリ | 123,684 KB |
最終ジャッジ日時 | 2024-10-17 20:47:44 |
合計ジャッジ時間 | 11,267 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 11 WA * 32 |
ソースコード
Q,Y = map(int, input().split()) S = list(input().split()) def Reverse_Polish_Notation(S, x): stack = list() N = len(S) for i in range(N): if S[i] == "+": val = 0 for i in range(2): v = stack.pop() val += v stack.append(val) elif S[i] == "min": m = stack.pop() n = stack.pop() val = min(m, n) stack.append(val) elif S[i] == "max": m = stack.pop() n = stack.pop() val = max(m, n) stack.append(val) else: if S[i]=="X": stack.append(x) else: stack.append(int(S[i])) #print(stack) return stack[-1]==Y if Reverse_Polish_Notation(S,0): print(0) exit() l = -1 r = 10**13 while r-l>1: mid = (r+l)//2 if Reverse_Polish_Notation(S, mid): l = mid else: r = mid if Reverse_Polish_Notation(S,l): print(l) else: print(-1)