結果
問題 |
No.193 筒の数式
|
ユーザー |
![]() |
提出日時 | 2015-05-22 22:38:39 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 927 bytes |
コンパイル時間 | 503 ms |
コンパイル使用メモリ | 59,648 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-06 05:14:43 |
合計ジャッジ時間 | 1,226 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 WA * 2 |
ソースコード
#include <iostream> #include <string> #include <algorithm> #include <cstdlib> using namespace std; string s; int calc(){ if(s[(int)s.size()-1]=='+'||s[(int)s.size()-1]=='-') return -1*(1<<25); if(s[0]=='+'||s[0]=='-') return -1*(1<<25); int ans=0; int temp=0; string num; bool pl=true; for(int i=0;i<(int)s.size();i++){ if(s[i]=='+'){ if(pl) ans+=temp; else ans-=temp; pl=true; temp=0; } else if(s[i]=='-'){ if(pl) ans+=temp; else ans-=temp; pl=false; temp=0; } else{ num=s[i]; temp=temp*10+atoi(num.c_str()); } } if(pl) ans+=temp; else ans-=temp; return ans; } int main(){ cin>>s; string temp; while(s[1]!='+'&&s[1]!='-'){ temp=s[0]; s.erase(s.begin()); s=s+temp; } int ans=calc(); do{ temp=s[s.size()-1]; s.erase(s.end()-1); s=temp+s; ans=max(ans,calc()); }while(s[(int)s.size()-1]!='+'&&s[(int)s.size()-1]!='-'); cout<<ans<<endl; return 0; }