結果
問題 | No.193 筒の数式 |
ユーザー | ikd |
提出日時 | 2016-07-23 13:07:32 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 734 bytes |
コンパイル時間 | 638 ms |
コンパイル使用メモリ | 58,168 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-06 14:58:42 |
合計ジャッジ時間 | 1,425 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#include<iostream> #include<string> #include<stdlib.h> using namespace std; int cal(string s){ int sum=0; if(s.front()=='+'||s.front()=='-'||s.back()=='+'||s.back()=='-') return (-99999999); s+='+'; string v; auto op='+'; for(int i=0; i<s.size(); i++){ if(s[i]!='+'&&s[i]!='-'){ v+=s[i]; }else{ if(op=='+') sum+=stoi(v); else sum-=stoi(v); v.clear(); op=s[i]; } } return sum; } int main(){ string S; cin>> S; int ans=cal(S); for(int k=1; k<S.size(); k++){ auto s=S.substr(S.size()-k, k)+S.substr(0, S.size()-k); ans=max(ans, cal(s)); } cout<< ans<< endl; return 0; }