結果
問題 | No.3021 Maximize eval |
ユーザー |
![]() |
提出日時 | 2025-02-15 13:26:38 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,577 bytes |
コンパイル時間 | 9,424 ms |
コンパイル使用メモリ | 469,528 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-02-15 13:26:49 |
合計ジャッジ時間 | 8,814 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 2 WA * 13 |
ソースコード
#include <bits/stdc++.h>#include <atcoder/all>#include <boost/multiprecision/cpp_dec_float.hpp>#include <boost/multiprecision/cpp_int.hpp>namespace mp = boost::multiprecision;using Bint = mp::cpp_int;using namespace std;using namespace atcoder;#define rep(i, n) for(int i=0;i<(n);++i)#define rep1(i, n) for(int i=1;i<=(n);i++)#define ll long longusing mint = modint998244353;using P = pair<ll,ll>;using lb = long double;using T = tuple<ll, ll, ll>;#ifdef LOCAL# include <debug_print.hpp># define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__)#else# define dbg(...) (static_cast<void>(0))#endifint main(){int t;cin >> t;while(t--) {string s;cin >> s;int n = s.size();int now = 1;for(int i=0;i<n;i++) {if(s[i]=='-') now = -1;else if(s[i]=='+') now = 1;else if(s[i]=='?') {int j = i;while(j<n && s[j]=='?') {j++;}int cnt = j - i;if(now==1) {for(int k=i;k<j;k++) s[k] = '9';}else{if(cnt==1) {if(i>0 && s[i-1]!='+' && s[i-1]!='-') {if(j<n && s[j]!='+'&& s[j]!='-'){s[i] = '+';now = 1;}else s[i]='1';}else s[i] = '1';}else if(cnt<=2) {if(j==n || s[j]=='+' || s[j]=='-'){for(int k=i;k<j;k++) s[k] = '1';}else{s[i]='1';s[i+1]='+';now = 1;}}else{if(i>0 && s[i-1]!='-' && s[i-1]!='+') {s[i] = '+';for(int k=i+1;k<j;k++) s[k] = '9';}else{s[i]='1';s[i+1]='+';for(int k=i+2;k<j;k++) s[k] = '9';}now = 1;}}i = j-1;}// dbg(i,now);}cout << s << endl;}return 0;}