P4815.可获得的最大点数(非hot100)
题目描述
几张卡牌排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。
每次操作,你可以从这一行卡牌的最左端或者最右端拿走一张卡牌,最终你必须恰好拿走 k 张卡牌。
你的得分为拿到的这 k 张卡牌点数之和。
现在给定卡牌点数数组 cardPoints 以及整数 k,请你求出可以获得的最大点数。
输入描述
第一行输入两个整数 n 和 k,分别表示卡牌的数量以及必须拿走的卡牌数量。
第二行输入 n 个整数,第 i 个整数表示 cardPoints_i,即第 i 张卡牌的点数。
输出描述
输出一个整数,表示可以获得的最大点数。
样例 1
输入:
7 3
1 2 3 4 5 6 1
输出:
12
说明:
一种最优方案是从右侧依次拿走 1、6、5,总得分为 12。
样例 2
输入:
3 2
2 2 2
输出:
4
样例 3
输入:
7 7
9 7 7 9 7 7 9
输出:
55
样例 4
输入:
3 1
1 1000 1
输出:
1
样例 5
输入:
8 3
1 79 80 1 1 1 200 1
输出:
202
数据范围
- 1≤n≤105
- 1≤cardPointsi≤104
- 1≤k≤n