#P15. 打靶

打靶

题目描述

靶场上有n块靶排成一排,从左到右依次编号为1、2、3...n,且每块靶上都标有一个分数。当某块靶被击中后,击中者会得到 x * y * z 的积分,y代表被击中靶上的积分,x代表其左侧最近且未被击中的靶上的积分,z代表其右侧最近且未被击中的靶上的积分。如果左侧不存在未被击中的靶,则x为1;如果右侧不存在未被击中的靶,则z为1。

计算完积分后,这块靶就会退出靶场。请计算击中所有靶后能得到的最高积分是多少?

例如:n=4,表示有4块靶,这4块靶上的积分从左到右分别是3、2、4、6;

按照下列顺序打靶,可以得到最高积分:

(1)打2号靶,得到的积分是 24(即 3 * 2 * 4)

(2)打3号靶,得到的积分是 72(即 3 * 4 * 6)

(3)打1号靶,得到的积分是 18(即 1 * 3 * 6)

(4)打4号靶,得到的积分是 6(即 1 * 6 * 1)

最终获得的积分是120(即 24+72+18+6)


输入描述

第一行输入一个整数n(1≤n≤300),表示靶场上靶的数量

第二行输入n个整数(1≤整数≤100),分别表示从左到右每块靶上的积分,整数之间以一个空格隔开


输出描述

输出一个整数,表示击中所有靶后能得到的最高积分


样例数据1

输入

4
3 2 4 6

输出

120

样例数据2

输入

8
98 97 96 96 99 90 95 99

输出

5523210

程序运行限制

时间限制:1000ms、内存限制:64MB