/* -*- coding: utf-8 -*- * * 193.cc: No.193 筒の数式 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int INF = 1 << 30; /* typedef */ /* global variables */ /* subroutines */ int num(string &s, int n, int i, int &pos) { int k = 0; while (pos < n) { char ch = s[(i + pos) % n]; if (ch < '0' || ch > '9') break; k = k * 10 + ch - '0'; pos++; } return k; } /* main */ int main() { string s; cin >> s; int n = s.size(); int maxd = -INF; for (int i = 0; i < n; i++) { if (s[i] == '+' || s[i] == '-' || s[(i + n - 1) % n] == '+' || s[(i + n - 1) % n] == '-') continue; int pos = 0; int e = num(s, n, i, pos); while (pos < n) { char op = s[(i + pos) % n]; pos++; int e0 = num(s, n, i, pos); if (op == '+') e += e0; else e -= e0; } if (maxd < e) maxd = e; } printf("%d\n", maxd); return 0; }