最大m个子段和
题号:NC235953
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个数组 a ,包含 n 个整数,你需要在数组 a 中选出不相交的 m 个连续子段,每个子段的长度至少为 1 。
定义每一个子段的贡献为子段内数字的和,你需要求出这 m 个子段的贡献之和的最大值是多少。

输入描述:

第一行输入两个正整数  ,表示数组 a 大小和子段个数。

第二行输入 n 个整数  ,表示数组 a 。

输出描述:

输出一行一个整数,表示 m 个子段的贡献之和的最大值。

示例1

输入

复制
6 2
-1 4 -2 3 -2 3

输出

复制
8

说明

选择的两个子段是[2,2],[4,6],和为4+3-2+3=8