306005 - 合并石子1

n堆石子排成一排,其编号为1,2,3,…,n(n≤100)。每堆石子有一定的数量,例如有7堆石子,分别为13,7,8,16,21,4,18

现在要将n堆石子归并成为一堆,归并的过程为每次只能将相邻的两堆石子堆成一堆,这样经过n-1次归并后成为一堆,如上面的7堆石子,可以有多种方法归并成一堆,其中的两种方法如下图所示。

输入

则 (a)的归并代价为20+24+25+44+69+87=267

(b)的归并代价为15+37+22+28+59+87=248

可见不同的过程得到的归并代价是不一样的,现在请编程找出一种合理的方法,使归并代价最小。

输出

第一行为一个整数n(1<n≤100),表示有n堆石子。

第二行为n堆石子的数量。

样例

输入

7
13 7 8 16 21 4 18

输出

239

输入

10
12  3  13  7  8  23  14  6  9  34

输出

398
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题