在一个项目中,小慕负责清理一组按顺序排列的数据节点,每个节点存储了一个整数值,由数组 `treasures` 表示。小慕有一个特殊的处理工具,可以一次性处理多个节点并提取其中的值。 这个工具的工作方式如下: 1. 每次操作可以选择以下两种方式之一: - 从最前面的三个节点中挑选任意两个节点处理,提取它们的值。操作的代价为这两个节点中值的最大值。 - 如果剩余的节点数量少于三个,那么就一次性把所有剩余节点处理掉,提取它们的值。操作的代价为剩余节点中值的最大值。 2. 每次操作后,工具会移除已处理的节点,剩余的节点继续按顺序等待下一次操作。 小慕需要计算出清空所有节点并提取其中值所需的最小代价。
提示:带虚线的词点一下有通俗解释。
输入描述
- 第一行包含一个整数 `n`,表示宝箱的数量,`1 <= n <= 1000`。 - 第二行包含 `n` 个整数 `treasures[0], treasures[1], ..., treasures[n-1]`,其中 `1 <= treasures[i] <= 10^6`。
输出描述
- 输出一个整数,表示清空所有宝箱并拿走里面宝石所需的最小代价。
示例
示例 1
输入
4 6 2 8 4
输出
12
说明:- 初始时,`treasures = [6, 2, 8, 4]`。 - 在第一次操作中,移除 `treasures[0] = 6` 和 `treasures[2] = 8`,操作成本为 `max(6, 8) = 8`。现在,`treasures = [2, 4]`。 - 在第二次操作中,移除剩余元素,操作成本为 `max(2, 4) = 4`。 - 移除所有元素的成本为 `8 + 4 = 12`,这是移除 `treasures` 中所有元素的最小成本。所以输出 `12`。
示例 2
输入
4 2 1 3 3
输出
5
说明:- 初始时,`treasures = [2, 1, 3, 3]`。 - 在第一次操作中,移除 `treasures[0] = 2` 和 `treasures[1] = 1`,操作成本为 `max(2, 1) = 2`。现在,`treasures = [3, 3]`。 - 在第二次操作中,移除剩余元素,操作成本为 `max(3, 3) = 3`。 - 移除所有元素的成本为 `2 + 3 = 5`,这是移除 `treasures` 中所有元素的最小成本。所以输出 `5`。
时间限制 1000 ms · 内存限制 128 MB