早凉给你一个长度为 n 的整数序列 a_1, a_2, \cdots , a_n。
早凉很喜欢两个整数 k,x。早凉想要选择恰好 k 个位置,让这些位置的值加上 x,其余的位置减去 x。
在执行完上述操作后,早凉会选择两个正整数 l,r(1\leq l,r\leq n),之后计算 S=a_{l}+a_{l+1}+\cdots+a_r。特别的,若 l>r,则 S=0。
你需要帮助早凉算出, S 能取到的最大值是多少。
早凉只用 \text{40ms} 就算出来了,你能教她一个更优解吗?
第一行三个整数 n,k,x。
第二行 n 个整数,第 i 个为 a_i。
一个整数表示答案。
4 1 2 2 -1 2 3
5
6 2 -8 4 -1 9 -3 7 -8
44
3 0 5 3 2 4
0
我们选择第 4 个数,序列变成 (0,-3,0,5),选 l=4,r=4 时 S=a_4=5。
2\leq n\leq 2\times10^5,0\leq k\leq n,-10^9\leq x\leq 10^9,-10^9\leq a_i\leq 10^9。
子任务编号 | 分值 | n | 特殊性质 |
---|---|---|---|
\text{Subtask}1 | 20 | \leq 8 | 无 |
\text{Subtask}2 | 10 | \leq 100 | 无 |
\text{Subtask}3 | 10 | \leq 500 | 无 |
\text{Subtask}4 | 20 | \leq 5\times10^3 | 无 |
\text{Subtask}5 | 20 | \leq 2\times10^5 | n-k\leq20 |
\text{Subtask}6 | 20 | \leq 2\times10^5 | 无 |
时间限制 | 1 秒 |
内存限制 | 512 MB |