3020 - 矩阵连乘

通过次数

205

提交次数

941

时间限制 : 1 秒
内存限制 : 128 MB

矩阵是按行和列排列的数字集合。矩阵A(r行s列)和矩阵B(p行q列)能够相乘的条件为s=p,即前一个矩阵的列数要等于后一个矩阵的行数。完成乘法AB共需要r*s*q次乘法。 举证乘法满足结合律,但不满足交换律,即一般情况下AB和BA并不相等,但(AB)C和A(BC)的结果是一样的。 现有n个矩阵连乘,记为A_1A_2…A_nA_1的行列分别为p_0p_1A_2的行列为p_1p_2,以此类推。请设计算法,给出矩阵连乘的顺序,使总计算量最小。总计算量为每次矩阵相乘的乘法次数之和。

输入

第一行为一个数n。 第二行为n+1个数,分别为p0,p1,…,pn。

输出

矩阵连乘所需要的最少乘法次数。

样例

输入

3
10 100 5 50

输出

7500

提示

数据规模和约定

对30%的数据,1\le n\le 100, 1\le pi \le 10000

对100%的数据,1\le n\le 1000, 1\le pi\le 10000

来源

动规专题