问题描述
蒜头君手里有 n 张卡牌,编号从 1 到 n,每张卡牌上面有一个数字 numi。现在蒜头君将 n
张卡牌排成一行,组成一个序列,执行以下操作:从序列中抽取一张编号为 i 的卡牌,则该张卡牌贡献
的得分为 numi−1×numi×numi+1,即卡牌上的数字同左右两
张相邻的卡牌上的数字乘积。但是不能抽取序列中最左边和最右边的卡牌,即i≠1 且
i≠n。抽到的卡牌就从序列中去掉。重复上述操作,直到序列里只剩两张卡牌。抽取的总得分为每次抽
取的得分之和。
现在蒜头君想知道,怎么进行卡牌抽取,可以使得总得分最小。
输入格式
输入有两行。
第一行输入一个整数 n(3≤n≤100),表示一共有 n 张卡牌。
第二行输入 n 个整数 numi(1≤numi≤100),表示 n 张卡牌上面的数字。
输出格式
输出一行,输出一个整数,表示卡牌抽取的最小总得分。
样例输入
5
20 30 5 18 3
样例输出
2520
AC代码
#include <iostre