#Z6033. 石子合并Ⅱ

石子合并Ⅱ

22945: 石子合并Ⅱ

有N堆石子排成一排(n<=100),现要将石子有次序地合并成一堆,规定每次只能选相邻的两堆合并成一堆,并将新的一堆的石子数,记为改次合并的得分,编一程序,由文件读入堆数n及每堆石子数(<=200);

(1)选择一种合并石子的方案,使得做n-1次合并,得分的总和最少

(2)选择一种合并石子的方案,使得做n-1次合并,得分的总和最多

输入

第一行为石子堆数n 第二行为每堆石子数,每两个数之间用一空格分隔。

输出

从第1至第n行为得分最小合并方案,第n+1行为空行,从n+2到2n+1行是得分最大的合并方案。

文件读写stone.in , stone.out

样例输入

4
4 5 9 4

样例输出

44
54