B. 区间问题1

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

对于数列 a,定义区间 [l,r] 的分值为 \sum_{i=l}^ra_i^2-\sum_{i=l}^ra_i-k\times(r-l+1) 。其中 k 是一个给定的参数。

你获得了一个很短的数列,希望找到一个分值最大的区间,这个问题你可以轻松解决,你可以把所有的区间以及它们的分值都找了出来。

但是不服输的小途想要挑战你,因此他给了你一个很长的数列,你还能找到所有非空区间的分值的最大值吗?

提示:

\sum_{i=l}^ra_i=a_l+a_{l+1}+a_{l+2}+...+a_r

形式化题意:

给定 n,k 和序列 {a_n} ,试求 \mathop{\max}\limits_{1<=l<=i<=r} \{\sum_{i=l}^ra_i^2-\sum_{i=l}^ra_i-k\times(r-l+1)\} 的结果。

输入格式

第一行两个正整数,分别表示 n,k。

接下来一行 n 个正整数,表示数列 a。

变量含义如上述所示。

输出格式

输出一个整数,表示答案。

样例

样例输入 #1

6 0
1 2 3 4 5 6

样例输出 #1

70

样例输入 #2

1 1234
10

样例输出 #2

-1144

样例解释1

假如选择了区间 [1,2],分值是 1^2+2^2−(1+2)−2*k=2

假如选择了区间 [1,6],分值是 1^2+2^2+3^2+4^2+5^2+6^2−(1+2+3+4+5+6)−6*k=70

可以证明,不存在分值大于 70 的区间,因此答案就是 70。

样例解释2

这个数列只有一个长度为 1 的区间,分值为 −1144。

数据范围与提示

对于 50% 的数据,n≤1000。

对于另外 50% 的数据,没有特殊限制。

对于 100% 的数据, 1≤n≤10^6,0≤a i≤10^6,0≤k≤10^9