你正在玩一个关于长度为
- 选择一个有超过一个元素的块(初始时你只有一块,即整个序列)
- 选择两个相邻元素把这个块从中间分开,得到两个非空的块。
每次操作后你将获得那两个新产生的块的元素和的乘积的分数。你想要最大化最后的总得分。
输入格式
第一行包含两个整数
第二行包含
输出格式
第一行输出你能获得的最大总得分。
第二行输出
如果有多种方案使得总得分最大,输出任意一种方案即可。
样例一
input
7 3 4 1 3 4 0 2 3
output
108 1 3 5
explanation
你可以通过下面这些操作获得
- 初始时你有一块
。在第 个元素后面分开,获得 分。 - 你现在有两块
。在第 个元素后面分开,获得 分。 - 你现在有三块
。在第 个元素后面分开,获得 分。
所以,经过这些操作后你可以获得四块
限制与约定
第一个子任务共 11 分,满足
第二个子任务共 11 分,满足
第三个子任务共 11 分,满足
第四个子任务共 17 分,满足
第五个子任务共 21 分,满足
第六个子任务共 29 分,满足
时间限制:
空间限制: