Home => ProblemSet => 2.12-30:石子合并
Problem1692--2.12-30:石子合并

1692: 2.12-30:石子合并

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 9
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

在一个圆形操场的四周摆放 N 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的 2 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
试设计出一个算法,计算出将 N 堆石子合并成 1 堆的最小得分和最大得分。

Input

数据的第 1 行是正整数 N,表示有 N 堆石子。
第 2 行有 N 个整数,第 i 个整数 ai 表示第 i 堆石子的个数。

Output

输出共 2 行,第 1 行为最小得分,第 2 行为最大得分。

Sample Input Copy

4
4 5 9 4

Sample Output Copy

43
54

HINT

1≤N≤100,0≤ai≤20。


贪心反例:


6 3 4 6 5 4 2
    第一次合并 3 4 6 5 4 2   2,3合并得分是5
第二次合并 5 4 6 5 4 5,4合并得分是9 第三次合并 9 6 5 4 5,4合并得分是9 第四次合并 9 6 9 9,6合并得分是15 第五次合并 15 9 15,9合并得分是24 总得分=5+9+9+15+24=62 但是如果采用如下合并方法,却可以得到比上面得分更少的方法: 第一次合并 3 4 6 5 4 2 3,4合并得分是7 第二次合并 7 6 5 4 2 7,6合并得分是13 第三次合并 13 5 4 2 4,2合并得分是6 第四次合并 13 5 6 5,6合并得分是11 第五次合并 13 11 13,11合并得分是24 总得分=7+13+6+11+24=61


Source/Category