A85659.Alice 的奇妙子段
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个长度为 n 的整数序列 a1,a2,…,an。你可以选择至多一次把某个连续子段 [l,r](要求 1≤l≤r≤n、长度 (r−l+1)≤L)中的每个数取相反数(乘以 −1)。翻转完成后,在新序列上取一个非空连续子段,使其元素和尽可能大。
请你输出在最优选择下的最大子段和。
输入格式
- 第一行两个整数 n,L —— 序列长度与允许翻转的最大长度。
- 第二行 n 个整数 a1,a2,…,an。
输出格式
- 输出一个整数,表示在至多一次、长度不超过 L 的翻转后,序列的最大子段和。
输入输出样例
输入#1
5 2 1 -4 3 -2 5
输出#1
11
说明/提示
说明
选择翻转子段 [2,2](长度 1≤L):序列变为 [1,4,3,−2,5],其最大子段和为 1+4+3−2+5=11。
数据范围
- 1≤n≤2×105
- 0≤L≤n
- ∣ai∣≤109