結果
問題 | No.193 筒の数式 |
ユーザー | nksk38 |
提出日時 | 2017-07-12 17:35:11 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,289 bytes |
コンパイル時間 | 888 ms |
コンパイル使用メモリ | 84,164 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-07 16:44:40 |
合計ジャッジ時間 | 1,325 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include<cstdio> #include<iostream> #include<algorithm> #include<string> #include<queue> #include<vector> #include<functional> #include<cmath> #include<map> #include<stack> #include<set> #include<numeric> #include<limits> using namespace std; typedef long long ll; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef pair<ll, string> pls; int main() { string S; cin >> S; int S_size = S.size(); S = S + S; ll ans = -100000000000; for (int i = 0; i < S_size; i++) { string str = ""; for (int j = i; j < S_size+i; j++) { if (j == i || j == S_size + i-1) { if (S[j] < '0' || S[j] > '9')break; } str += S[j]; } ll sum = 0; bool flag = 0; if (str.size() == S_size) { string figure = "",ope = "+"; for (int j = 0; j < str.size(); j++) { if (str[j] >= '0' && str[j] <= '9') { figure += str[j]; } else{ flag = 1; if (ope == "+") sum = sum + stoll(figure); else if(ope == "-") sum = sum - stoll(figure); ope = str[j]; figure = ""; } if (j == str.size() - 1) { if (ope == "+") { sum = sum + stoll(figure); } else if (ope == "-") sum = sum - stoll(figure); ope = str[j]; } } } if(flag) ans = max(ans,sum); } cout << ans << endl; return 0; }