結果
問題 | No.2927 Reverse Polish Equation |
ユーザー |
|
提出日時 | 2024-10-12 16:20:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 666 ms / 2,000 ms |
コード長 | 751 bytes |
コンパイル時間 | 232 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 200,872 KB |
最終ジャッジ日時 | 2024-10-16 00:25:58 |
合計ジャッジ時間 | 13,313 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
Q, Y = map(int, input().split())s = list(input().split())def calc(x):A = []for i in s:if i == 'X':A.append(x)elif 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:A.append(int(i))return A[0]if calc(0) <= calc(10 ** 18):le = 0ri = 10 ** 18while le + 1 < ri:mi = (le + ri) // 2if calc(mi) >= Y:ri = mielse:le = miif calc(le) == Y:print(le)elif calc(ri) == Y:print(ri)else:print(-1)else:le = 0ri = 10 ** 18while le + 1 < ri:mi = (le + ri) // 2if calc(mi) <= Y:ri = mielse:le = miif calc(le) == Y:print(le)elif calc(ri) == Y:print(ri)else:print(-1)