#O3008. 合肥.2016.04.能量最大化(energy)

合肥.2016.04.能量最大化(energy)

题目描述

卡卡西手上有一串能量项链。在项链上有 NN 颗能量珠。

能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。

如果前一颗能量珠的头标记为 mm ,尾标记为 rr ,后一颗能量珠的头标记为 rr ,尾标记为 nn ,则聚合后释放的能量为 mrnm*r*n,新产生的珠子的头标记为 mm ,尾标记为 nn

可以将相邻的两颗珠子聚合得到能量,直到项链上只剩下一颗珠子为止。

显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。

例如:设 N=4N=444 颗珠子的头标记与尾标记依次为 (23)(35)(510)(102)(2,3) ,(3,5) ,(5,10) ,(10,2)。我们用记号 ⊕ 表示两颗珠子的聚合操作, (jjkk) 表示第 jkj,k 两颗珠子聚合后所释放的能量。

  • 1122 两颗珠子聚合后释放的能量为: (1122)=235=30=2*3*5=30,新产生的珠子头标记与尾标记 (2,5)(2, 5)

  • 4411 两颗珠子聚合后释放的能量为: (4411 )=1023=60=10*2*3=60。新产生的珠子头标记与尾标记 (10,3)(10, 3)

  • 这一串项链可以得到最优值的一个聚合顺序所释放的总能量为 (((4411 ) ⊕ 22 ) ⊕ 33 )=1023+1035+10510=710=10*2*3+10*3*5+10*5*10=710

输入格式

输入共两行,第一行是一个正整数 NN ,表示项链上珠子的个数。第二行是 NN 个用空格隔开的正整数。第 ii 个数为第 ii 颗珠子的头标记( 1iN1 \le i \le N ),当 i<Ni \lt N 时,第 ii 颗珠子的尾标记应该等于第 i+1i+1 颗珠子的头标记。第 NN 颗珠子的尾标记应该等于第 11 颗珠子的头标记。

至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。

数据范围

4N1004 \le N \le 100

11 \le 每个珠子的头尾标记 500\le 500

输出格式

只有一个正整数,为聚合成一个珠子时所释放的最大总能量。

样例

4
2 3 5 10
710