結果

問題 No.2927 Reverse Polish Equation
ユーザー momoyuu
提出日時 2024-10-13 18:04:42
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,897 bytes
コンパイル時間 1,342 ms
コンパイル使用メモリ 99,192 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-16 00:31:27
合計ジャッジ時間 3,796 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15 WA * 28
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
using ll = long long;
int main(){
cin.tie(nullptr);
ios::sync_with_stdio(false);
ll q,y;
cin>>q>>y;
ll n = q;
vector<ll> s(n);
auto calc = [](string now){
ll ans = 0;
for(int i = 0;i<now.size();i++){
ans *= 10;
ans += now[i] - '0';
}
return ans;
};
for(int i = 0;i<n;i++){
string now;
cin>>now;
if(now=="X") s[i] = -1;
else if(now=="+") s[i] = -2;
else if(now=="max") s[i] = -3;
else if(now=="min") s[i] = -4;
else s[i] = calc(now);
}
ll right = max(10ll,y + 10);
ll left = -1;
auto get = [&](ll now) {
vector<ll> a;
for(int i = 0;i<n;i++){
if(s[i]==-1) a.push_back(now);
else if(s[i]==-2){
ll p = 0;
p += a.back();
a.pop_back();
p += a.back();
a.pop_back();
if(p>y) return p;
a.push_back(p);
}else if(s[i]==-3){
ll p = 0;
p += a.back();
a.pop_back();
p = max(p,a.back());
a.pop_back();
if(p>y) return p;
a.push_back(p);
}else if(s[i]==-4){
ll p = 0;
p += a.back();
a.pop_back();
p = min(p,a.back());
a.pop_back();
if(p>y) return p;
a.push_back(p);
}else{
a.push_back(s[i]);
}
}
return a[0];
};
while(right-left>1){
ll mid = (right+left) / 2;
if(get(mid)>=y) right = mid;
else left = mid;
}
if(get(right)==y) cout<<right<<endl;
else cout<<-1<<endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0