結果
| 問題 |
No.193 筒の数式
|
| コンテスト | |
| ユーザー |
airis
|
| 提出日時 | 2015-05-07 20:34:25 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,318 bytes |
| コンパイル時間 | 732 ms |
| コンパイル使用メモリ | 75,340 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-05 19:57:57 |
| 合計ジャッジ時間 | 1,409 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 11 WA * 5 |
ソースコード
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <numeric>
#define rep(x, to) for (int x = 0; x < (to); x++)
#define REP(x, a, to) for (int x = (a); x < (to); x++)
#define foreach(itr, x) for (typeof((x).begin()) itr = (x).begin(); itr != (x).end(); itr++)
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;
typedef pair<long, long> PLL;
const ll INF = (ll)(1e+18 + 7);
string s;
ll ans;
ll calc(string x) {
ll res = 0;
ll num = 0;
ll keta = 0;
ll sign = 1;
if (x[0] == '+' || x[0] == '-') return -INF;
if (x[x.size()-1] == '+' || x[x.size()-1] == '-') return -INF;
x += '$'; // 終端記号
//cout << x << endl;
for (int i = 0; i < x.size(); i++) {
if (x[i] == '-' || x[i] == '+' || x[i] == '$') {
if (keta == 0) {
return -INF;
} else {
res += sign * num;
}
sign = x[i] == '+' ? 1 : -1;
keta = 0;
num = 0;
} else {
num = 10 * num + (x[i] - '0');
keta++;
}
}
return res;
}
int main() {
cin >> s;
rep(i, s.size() + 1) {
string x = s.substr(i) + s.substr(0, i);
ans = max(ans, calc(x));
//cout << x << ":" << ans << endl;
}
cout << ans << endl;
return 0;
}
airis