#P1006. F. 我是贪心大王
F. 我是贪心大王
F. 我是贪心大王
时间限制:1s
空间限制:256MB
题目描述
给定一个初始长度为 的数组 ,其中所有数都互不相同。
现在要对这个数组进行 次操作,每次需要选择以下两种操作其中一个进行操作:
- 从中取出数组中的 两个 最小值,并将其从数组中删去;
- 从中取出数组中的 一个 最大值,并将其从数组中删去。
你需要计算经过 次操作后,数组剩下的数的和的最大值是多少?
输入格式
第一行两个整数 和 ,分别代表初始数组长度和操作次数;
第二行 个整数,代表数组中的元素,用空格隔开。
输出格式
输出一行整数,代表 次操作剩余数和的最大值。
样例
5 2
2 5 1 10 6
11
解释
第一步先删去两个最小值 ,第二步删去最大值 ,剩余的数为 ,和为 ;
可以证明,这样操作最后得到的数的和是最大的。
6 2
15 22 12 10 13 11
46
解释
两次都删去最大值后剩下的数为 ,这样剩下的数的和是最大的,值为46.
数据范围
测试点编号 | 约定 | 测试点分值 |
---|---|---|
每个测试点5分 | ||
无特殊约定 |
对于所有测试点,;.
对于 C/C++ 选手,这道题所有数的和加起来可能会超过 32位整数的范围 ,所以结果你需要使用 long long.
相关
在下列比赛中: