#ZS0034. 快乐值最大化

快乐值最大化

题目描述:

nn 个孩子站成一队,其中第 ii 个孩子的 快乐值 是 happinessihappiness_i 。你计划组织 kk 轮筛选从这 nn 个孩子中选出 kk 个孩子。

在每一轮选择一个孩子时,所有尚未被选中的孩子的快乐值将减少 11 。注意,快乐值不能变成负数,且只有在它是正数的情况下才会减少。

选择 kk 个孩子,并使你选中的孩子幸福值之和最大,返回你能够得到的快乐值。

输入格式:

第一行输入两个整数 n,k(1<=k<=n<=105)n,k(1 <= k <= n<=10^5) ,分别表示孩子的个数和筛选的轮次。

第二行输入 nn 个整数 a[i]a[i] ,表示第 ii 个孩子的幸福值 (1<=a[i]<=108)(1 <= a[i] <= 10^8)

输出格式:

输出一个整数表示最大的快乐值。

输入样例

3 2
1 2 3

输出样例

4

输入样例

4 2
1 1 1 1

输出样例

1

样例说明

对于样例一:
按以下方式选择 2 个孩子:
- 选择幸福值为 3 的孩子。剩余孩子的幸福值变为 [0,1] 。
- 选择幸福值为 1 的孩子。剩余孩子的幸福值变为 [0] 。注意幸福值不能小于 0 。
所选孩子的幸福值之和为 3 + 1 = 4 。
对于样例二:
按以下方式选择 2 个孩子:
- 选择幸福值为 1 的任意一个孩子。剩余孩子的幸福值变为 [0,0,0] 。
- 选择幸福值为 0 的孩子。剩余孩子的幸福值变为 [0,0] 。
所选孩子的幸福值之和为 1 + 0 = 1 。

提示