#icpc2015summerday2e. [icpc2015summer_day2_e]坑道数式
[icpc2015summer_day2_e]坑道数式
题目描述
你在探索一个废弃的矿井时,发现了一条长长的数学式写在坑道上。作为一个喜欢大数的人,你拿出粉笔,决定在数学式中加入尽可能多的括号(
或)
,使得计算结果最大化。如果添加括号后仍然要保持为数学式,则你能够得到的最大值是多少。
字符和字符之间有足够的空间,你可以添加任意数量的括号(
或)
。最终生成的字符串可以是一个数学式,即使括号不匹配。(参见示例2)。此外,在这里我们称符合以下BNF定义的为数学式。数学式中的数字都是一位数。
<expr> ::= "(" <expr> ")"
| <term> "+" <term>
| <term> "-" <term>
<term> ::= <digit> | <expr>
<digit> ::= "0" | "1" | "2" | "3" | "4"
| "5" | "6" | "7" | "8" | "9"
约束条件
表示一个数学表达式。
输入格式
输入以以下格式从标准输入中给出:
输出格式
输出一个整数,表示答案。
示例输入 1
1-(2+3-4+5)
示例输出 1
5
1-(2+3-(4+5)) 是可以得到的最大值。
示例输入 2
1-(2+3+4)
示例输出 2
0
(1-(2+3)+4) 是可以得到的最大值。
示例输入 3
1-(2+3)
示例输出 3
-4
1-(2)+(3) 不是一个数学表达式,请注意。