#arc066c. [arc066_c]Addition and Subtraction Hard

[arc066_c]Addition and Subtraction Hard

题目描述

Joisino拥有一个由NN个项组成的公式:A1A_1 op1op_1 A2A_2 ...... opN1op_{N-1} ANA_N。其中,AiA_i是一个整数,opiop_i是二进制运算符,可以是+-。因为Joisino喜欢大数,她想通过在公式中插入任意数量的括号(可能为零)来最大化公式的计算值。只能在整数之前插入开括号,并且只能在整数之后插入闭括号。允许在任何位置插入任意数量的括号。你的任务是编写一个程序,在插入任意数量的括号后,找到公式的最大可能计算值。

约束条件

  • 1N1051≦N≦10^5
  • 1Ai1091≦A_i≦10^9
  • opiop_i只能是+-

输入

输入以以下格式从标准输入给出:

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

输出

打印在插入任意数量的括号后,公式的最大可能计算值。

示例输入 1

3
5 - 1 - 3

示例输出 1

7

最大的可能值是:5(13)=75 - (1 - 3) = 7

示例输入 2

5
1 - 2 + 3 - 4 + 5

示例输出 2

5

最大的可能值是:1(2+34)+5=51 - (2 + 3 - 4) + 5 = 5

示例输入 3

5
1 - 20 - 13 + 14 - 5

示例输出 3

13

最大的可能值是:1(20(13+14)5)=131 - (20 - (13 + 14) - 5) = 13