結果
| 問題 |
No.193 筒の数式
|
| コンテスト | |
| ユーザー |
no15_renne
|
| 提出日時 | 2015-04-26 22:36:01 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 1,721 bytes |
| コンパイル時間 | 803 ms |
| コンパイル使用メモリ | 81,860 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-05 03:03:47 |
| 合計ジャッジ時間 | 1,359 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 16 |
ソースコード
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <map>
#include <climits>
#include <sstream>
using namespace std;
#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define RREP(i,n) for(int i=(int)n-1; i>=0; i--)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define RFOR(i,c) for(__typeof((c).rbegin())i=(c).rbegin();i!=(c).rend();++i)
#define ALL(c) (c).begin(), (c).end()
typedef long long int ll;
typedef pair<int, int> pii;
typedef pair<int, pair<int, int> > pipii;
typedef vector<int> vi;
const ll INF = 1LL<<40;
const int MOD = 1e9+7;
#define int ll
int calc2(string str){
int res = 0;
vector<string> a(str.size(), "");
vector<char> s;
int id = 0;
REP(i, str.size()){
if(str[i] != '+' && str[i] != '-'){
if(a[id].size() == 0 && str[i] == '0') continue;
a[id] += str[i];
}
else{
s.push_back(str[i]);
id++;
}
}
stringstream ss(a[0]);
ss >> res;
if(a[0] == "") res = 0;
REP(i, s.size()){
if(a[i+1] == "") continue;
stringstream sss(a[i+1]);
int x;
sss >> x;
if(s[i] == '+') res += x;
else res -= x;
}
return res;
}
int calc(string s, int i, int n){
if(s[i] == '+' || s[i] == '-') return -INF;
if(s[i+n-1] == '+' || s[i+n-1] == '-') return -INF;
return calc2(s.substr(i, n));
}
signed main(void){
string s;
cin >> s;
int ans = -INF;
int n = s.size();
s += s;
REP(i, n){
ans = max(ans, calc(s, i, n));
}
cout << ans << endl;
return 0;
}
no15_renne