您将要参加游戏节目。挑战之一如下:
- 第一个房间包含大量相同的球。
- 第二个房间包含一系列滑槽,每个滑槽都具有一个传感器,该传感器可以计算放置在其中的球的数量。放置在滑槽中的球将无法回收。
- 在将一定数量的球(其触发计数)放入其中后,每个滑槽都将触发。当它触发时,它会闪烁灯光,发出声音并毫无疑问地触发它。
- 您必须触发
N
滑道才能继续下一个挑战。 - 您知道触发计数,但不知道计数与斜道之间的对应关系。
- 您有机会将球从第一个房间带到第二个房间。将球放入滑槽后,您将无法再返回更多球。
- 您拿到的每个球都会从累积奖金中扣除。
显然,您想确保自己能够通过挑战,但是想要最大程度地减少累积奖金损失。编写程序,函数,动词等以告诉您您需要多少个球。
例
假设触发计数为2、4和10,并且您需要触发2个滑槽才能通过。有一个策略,可以传10个球:在第一个溜槽中最多放置4个球,在第二个溜槽中最多放置4个球,在第三个溜槽中最多放置4个球。由于三个滑道之一仅在触发2个球后才触发,因此您总共只能使用10个球。没有可以保证少于10个的策略,因此这是正确的输出。
输入项
输入由一个整数触发计数的数组和一个给出要触发的溜槽数的整数组成。您可以按任意顺序输入两个输入,并且如果需要,可以输入第三个输入与数组的长度。
您可以假设所有输入均大于零,并且必须触发的溜槽数量不超过溜槽数量。
您还可以假设计数是排序的(升序或降序),只要您在回答中清楚说明即可。
输出量
输出应为单个整数,给出最佳策略所需的球数。
测试用例
格式: N counts solution
1 [2 4 10] 6
2 [2 4 10] 10
3 [2 4 10] 16
1 [3 5 5 5 5 5 5 5 5 5] 5
2 [1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 8 11] 8
2 [1 2 6 6 6 6 6 6 6 10] 16
2 [1 2 3 3 4 4 6 6 6 11] 17
3 [1 2 3 4 5 5 6] 16
3 [2 4 7 7 7 7 7 7 7] 21
5 [1 2 2 3 3 3 3 3 5 9 9 11] 27
2 [5 15 15] 25
1 [4 5 15] 10
3 [1 4 4 4] 10
2 [1 3 4] 6
2 [1 3 3 8] 8