結果
問題 | No.193 筒の数式 |
ユーザー | k |
提出日時 | 2020-08-26 20:44:57 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 1,000 ms |
コード長 | 956 bytes |
コンパイル時間 | 2,215 ms |
コンパイル使用メモリ | 193,704 KB |
最終ジャッジ日時 | 2025-01-13 15:05:13 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define REP(i,n) for(int i=0; i<(int)(n); i++)#define FOR(i,b,e) for (int i=(int)(b); i<(int)(e); i++)#define ALL(x) (x).begin(), (x).end()const double PI = acos(-1);const long long INF = 1LL<<60;long long parse(string s) {s += '+'; //sentinellong long ret = 0;long long cur = 0;char op = '+';for (char c: s) {if (!isdigit(c)) {if (op == '+')ret += cur;elseret -= cur;op = c;cur = 0;}else {cur = 10 * cur + c - '0';}}return ret;}int main() {ios_base::sync_with_stdio(0);cin.tie(0);string s;cin >> s;long long ret = -INF;REP (i, s.length()) {string t;int j = i;REP (_, s.length()) {t += s[j];++j %= s.length();}if (!isdigit(t.front()) || !isdigit(t.back())) continue;ret = max(ret, parse(t));}cout << ret << endl;return 0;}