Problem5594--最大子序和

5594: 最大子序和

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

简单版最大子序和相比,只是扩大了数据规模。
输入一个长度为 $n$ 的整数序列,从中找出一段长度不超过 $m$ 的连续子序列,使得子序列中所有数的和最大。
注意:子序列的长度至少是 $1$。

Input

第一行输入两个整数 $n,\ m\ (1≤n,\ m≤5 \times 10^5)$。
第二行输入 $n$ 个数,代表长度为 $n$ 的整数序列。$−500≤a_i≤500$。
同一行数之间用空格隔开。

Output

输出一个整数,代表该序列的最大子序和。

Sample 1 Input

5 2
1 2 3 4 5

Sample 1 Output

9
长度不超过 $2$ 的最大子序列为 $4\ 5$,对应的和为 $4+5=9$。

Sample 2 Input

6 3
1 -2 3 -4 5 -6

Sample 2 Output

5
长度不超过 $3$ 的最大子序列为 $5$,对应的和为 $5$。

Sample 3 Input

6 4
1 -3 5 1 -2 3

Sample 3 Output

7

HINT

类似题目:AcWing

Source/Category