Description:
在一个操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定在合并过程中最多可以有m(k)次选k 堆石子合并成新的一堆,2≤k≤n,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n 堆石子合并成一堆的最小总费用。
对于给定n堆石子,编程计算合并成一堆的最小总费用。
Input:
文件的第1 行有1 个正整数n,表示有n 堆石子。第2行有n个数,分别表示每堆石子的个数。第3行有n-1 个数,分别表示m(k)(2≤k≤n)的值。
Output:
程序运行结束时,将计算出的最小总费用输出,问题无解时输出“Nosolution!”
Sample Input:
7
45 13 12 16 9 5 22
3 3 0 2 1 0
Sample Output:
136
Note:
undefined
本题由旧版NOJ导入,来源:NUAA