結果
問題 | No.193 筒の数式 |
ユーザー | nanasili |
提出日時 | 2015-07-03 17:26:23 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 993 bytes |
コンパイル時間 | 608 ms |
コンパイル使用メモリ | 86,200 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-07 22:44:10 |
合計ジャッジ時間 | 1,337 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include <algorithm> #include <vector> #include <cfloat> #include <string> #include <cmath> #include <set> #include <cstdlib> #include <map> #include <ctime> #include <iomanip> #include <functional> #include <deque> #include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <stack> #include <climits> #include <sys/time.h> #include <cctype> using namespace std; typedef long long ll; ll calc(string s) { for (int i = 1; i < s.size(); i++) { if (s[i] == '+') { return stol(s.substr(0, i))+calc(s.substr(i+1)); }else if (s[i] == '-') { return stol(s.substr(0, i))+calc(s.substr(i)); } } return stol(s); } bool is_kigou(char c) { return c == '+' || c == '-'; } int main() { string s; cin >> s; int n = s.size(); ll ans = -1e10; for (int i = 0; i < n; i++) { string t = s.substr(i)+s.substr(0, i); if (is_kigou(t[0]) || is_kigou(t[n-1])) continue; ans = max(ans, calc(t)); } std::cout << ans << std::endl; }