結果
問題 |
No.2927 Reverse Polish Equation
|
ユーザー |
![]() |
提出日時 | 2025-05-15 08:19:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 670 ms / 2,000 ms |
コード長 | 1,030 bytes |
コンパイル時間 | 518 ms |
コンパイル使用メモリ | 82,760 KB |
実行使用メモリ | 199,748 KB |
最終ジャッジ日時 | 2025-05-15 08:19:44 |
合計ジャッジ時間 | 15,412 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
Q,Y = list(map(int,input().split())) S = input().split() def check(n): stack = [] for i in S: if(i == "+"): stack.append(stack.pop()+stack.pop()) elif(i == "min"): stack.append(min(stack.pop(),stack.pop())) elif(i == "max"): stack.append(max(stack.pop(),stack.pop())) elif(i == "X"): stack.append(n) else: stack.append(int(i)) return stack[0] >= Y def last_check(n): stack = [] for i in S: if(i == "+"): stack.append(stack.pop()+stack.pop()) elif(i == "min"): stack.append(min(stack.pop(),stack.pop())) elif(i == "max"): stack.append(max(stack.pop(),stack.pop())) elif(i == "X"): stack.append(n) else: stack.append(int(i)) return stack[0] == Y ng,ok = -1,10**18 while(ok - ng > 1): mid = (ok+ng)//2 if(check(mid)): ok = mid else: ng = mid print(ok if last_check(ok) else -1)