给你一个整数数组 nums,以及两个整数 k 和 mul。
从 nums 中选出 恰好 k 个元素。你可以按照任意顺序逐个处理这些元素。
对于每个被选择的元素,都可以 独立地 选择以下两种操作之一:
mul 的 当前 值,并将结果 加 到总和中。每处理一个被选择的元素后,无论选择哪种操作,mul 都会 减少 1。mul 的当前值可能变为 0 或负数。
返回一个整数,表示可能得到的 最大 总和。
示例 1:
输入: nums = [6,1,2,9], k = 3, mul = 2
输出: 26
解释:
一种最优方式如下:
nums[3] = 9、nums[0] = 6 和 nums[2] = 2。nums[3] = 9:选择乘法,因此贡献 9 * 2 = 18。此时,mul 变为 1。nums[0] = 6:选择乘法,因此贡献 6 * 1 = 6。此时,mul 变为 0。nums[2] = 2:选择直接相加,因此贡献 2。18 + 6 + 2 = 26。示例 2:
输入: nums = [3,7,5,2], k = 2, mul = 4
输出: 43
解释:
一种最优方式如下:
nums[1] = 7 和 nums[2] = 5。nums[1] = 7:选择乘法,因此贡献 7 * 4 = 28。此时,mul 变为 3。nums[2] = 5:选择乘法,因此贡献 5 * 3 = 15。28 + 15 = 43。示例 3:
输入: nums = [4,4], k = 1, mul = 1
输出: 4
解释:
一种最优方式如下:
nums[0] = 4。nums[0] = 4:选择乘法,因此贡献 4 * 1 = 4。
提示:
1 <= nums.length <= 1051 <= nums[i] <= 1051 <= k <= nums.length1 <= mul <= 105