#ATarc066c. [ARC066E] Addition and Subtraction Hard

[ARC066E] Addition and Subtraction Hard

题目描述

joisinoお姉ちゃん有一个由 NN 项组成的表达式,形式为 A1 op1 A2 ... opN1 ANA_1\ op_1\ A_2\ ...\ op_{N-1}\ A_N。其中,AiA_i 是整数,opiop_i 是加号 + 或减号 -。joisinoお姉ちゃん喜欢大数,因此她希望通过在表达式中任意插入括号(可以插入 00 个),改变计算顺序,使表达式的值最大化。括号只能插在数字的前面或后面,同一位置可以插入任意多个括号。你的任务是编写一个程序,计算在插入括号后表达式可能取得的最大值。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 op1op_1 A2A_2 ...... opN1op_{N-1} ANA_N

输出格式

输出通过插入括号后表达式可能取得的最大值。

样例 1

输入

3
5 - 1 - 3

输出

7

样例 2

输入

5
1 - 2 + 3 - 4 + 5

输出

5

样例 3

输入

5
1 - 20 - 13 + 14 - 5

输出

13

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • opiop_i 仅为加号 + 或减号 -

样例解释 1

5  (1  3) = 75\ -\ (1\ -\ 3)\ =\ 7,这是最大值,因此输出 77

样例解释 2

1  (2 + 3  4) + 5 = 51\ -\ (2\ +\ 3\ -\ 4)\ +\ 5\ =\ 5,这是最大值,因此输出 55

样例解释 3

1  (20  (13 + 14)  5) = 131\ -\ (20\ -\ (13\ +\ 14)\ -\ 5)\ =\ 13,这是最大值,因此输出 1313

由 ChatGPT 4.1 翻译