题目描述
给定一个长度为 的整数序列 和一个整数 ,请选取一段长度至多为 的非空连续子段,使其元素之和最大。
即求所有满足 且 的区间 中, 的最大值。
输入格式
第一行输入两个整数 。
第二行输入 个整数 。
输出格式
输出一个整数,表示满足条件的最大子段和。
样例 1
5 2
2 -5 4 3 -1
7
样例 1 说明
选择区间 ,对应子段 4 3,长度为 ,和为 。
样例 2
4 3
-8 -2 -5 -4
-2
样例 2 说明
只选择第 个数 。子段不能为空,所以不能输出 。
数据范围与评分
对于所有数据,,。
| 测试组 | 分值 | 额外限制 |
|---|---|---|
| 1 | 20 | n <= 200 |
| 2 | 30 | n <= 2000 |
| 3 | 50 | 无 |
各组独立计分,只有通过一组内的所有测试点,才能获得该组分数。
答案可能超出 32 位整数的范围,请使用 64 位整数类型(如 C++ 的 long long)。