結果
問題 |
No.2927 Reverse Polish Equation
|
ユーザー |
![]() |
提出日時 | 2024-10-12 17:22:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 627 ms / 2,000 ms |
コード長 | 615 bytes |
コンパイル時間 | 319 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 200,404 KB |
最終ジャッジ日時 | 2024-10-16 00:30:51 |
合計ジャッジ時間 | 12,511 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
import sys mod = 998244353 mod2 = 10**9+7 Q, Y = map(int, input().split()) s = list(input().split()) def f(x): A = [] for i in s: if i == "+": A.append(A.pop()+A.pop()) elif i == "min": A.append(min(A.pop(), A.pop())) elif i == "max": A.append(max(A.pop(), A.pop())) else: if i == "X": A.append(x) else: A.append(int(i)) return A[0] ng, ok = -1, 1<<60 while ok - ng > 1: m = (ok+ng) // 2 if f(m) >= Y:ok = m else:ng = m print(ok if ok < 1<<60 and f(ok) == Y else -1)