結果
問題 | No.193 筒の数式 |
ユーザー |
![]() |
提出日時 | 2017-04-27 22:51:25 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,752 bytes |
コンパイル時間 | 1,397 ms |
コンパイル使用メモリ | 162,024 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-13 14:54:56 |
合計ジャッジ時間 | 2,155 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 11 WA * 5 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define FOR(i,a,b) for(int i=(a);i<(b);i++)#define REP(i,n) FOR(i,0,n)#define ALL(v) (v).begin(),(v).end()template<typename A, typename B> inline bool chmax(A &a, B b) { if (a<b) { a=b; return 1; } return 0; }template<typename A, typename B> inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; }typedef unsigned long long ull;typedef long long ll;typedef pair<int, int> pii;typedef pair<ll, ll> pll;typedef pair<int, pii> P;const ll INF = 1ll<<29;const ll MOD = 1000000007;const double EPS = 1e-10;struct SyntaxAnalysis {string s;int i;ll val;SyntaxAnalysis(string s) { init(s); }void init(string _s) {s = _s;i = 0;val = expr(i);}ll expr(int &i) {ll res = term(i);while (s[i] == '+' || s[i] == '-') {char op = s[i++];ll now = term(i);if (op == '+') res += now;else res -= now;}return res;}ll term(int &i) {ll res = factor(i);while (s[i] == '*' || s[i] == '/') {char op = s[i++];ll now = factor(i);if (op == '*') res *= now;else res /= now;}return res;}ll factor(int &i) {if (isdigit(s[i])) return number(i);i++;ll res = expr(i);i++;return res;}ll number(int &i) {ll res = s[i++] - '0';while (isdigit(s[i])) res = res * 10 + s[i++] - '0';return res;}ll get() {return val;}};ll calc(string s) {SyntaxAnalysis sa(s);return sa.get();}int main() {string s;cin >> s;ll ans = 0;REP(i, s.size()) {rotate(s.begin(), s.begin() + 1, s.end());if (s[0] == '+' || s[0] == '-' || s[s.size() - 1] == '+' || s[s.size() - 1] == '-') continue;chmax(ans, calc(s));}cout << ans << endl;return 0;}