84441 - Payment

通过次数

1

提交次数

1

时间限制 : 1 秒
内存限制 : 128 MB

小 L 今天一共坐了 n 段地铁,第 i 段原本需要支付 a_i 元。

由于系统延迟,每一段乘车费用不会立即结算,而是按照如下规则统一处理。你可以将连续的几段地铁乘车记录划分为一组进行结算:

  • 当一组结算中只有 1 段乘车记录时,不触发任何操作(全额支付)。
  • 当一组结算中包含的乘车段数 \ge 2 时,该组乘车费用中最高的一段免费(若有多个最高费用,只免费其中一段)。

请你合理划分结算时间(将整个乘车序列划分为若干个连续的段),使得小 L 最终需要支付的总费用最少。

输入

第一行包含一个整数 n

第二行包含 n 个整数,第 i 个表示 a_i

输出

一行一个整数,表示最小的总费用。

样例

输入

5
3 1 4 2 5

输出

6

输入

4
10 10 1 1

输出

11

提示

对于所有的数据,满足:

  • 1\le n\le 5\times 10^5
  • 1\le a_i\le 10^9

来源

MROI-R1