P15095

删数

难度 5 级 小学 动态规划入门 线性DP
讨论 统计 5通过 6提交 83.3%通过率 旧版界面
时间限制 1 秒 内存限制 128 MB

题目描述

有 N 个不同的正整数 x_1, x_2, ..., x_N 排成一排,我们可以从左边或右边去掉连续的 i (1 \le i \le n) 个数(只能从两边删除数),剩下 N-i 个数,再把剩下的数按以上操作处理,直到所有的数都被删除为止。

每次操作都有一个操作价值,比如现在要删除从 i 位置到 k 位置上的所有的数。操作价值为 |x_i-x_k| \times (k-i+1) ,如果只去掉一个数,操作价值为这个数的值。 问如何操作可以得到最大值,求操作的最大价值。

输入

第一行为一个正整数 N ;

第二行有 N 个用空格隔开的 N 个不同的正整数。

输出

一行,包含一个正整数,为操作的最大值

样例

样例 1
输入
6
54 29 196 21 133 118
输出
768

提示

【样例解释和说明】

说明,经过 3 次操作可以得到最大值,第一次去掉前面 3 个数:54 、29 、196 ,操作价值为 426。第二次操作是在剩下的三个数 (21,133,118) 中去掉最后一个数118,操作价值为 118。第三次操作去掉剩下的 2 个数:21 和 133 ,操作价值为 224。操作总价值为 426+118+224=768 。

【数据范围】

3≤N≤100 ,1 \le x_i \le 1000

Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交