小慕正在策划部门的 Family Day 开放日活动,其中有一个从桶里取球的游戏。游戏规则如下:有 N 个容量相同的小桶等距排开,每个小桶里默认装了数量不等的小球,小桶里的小球数量记录在数组 bucketBallNums 中。游戏开始时,要求所有桶里的小球总数不能超过 SUM。如果小球总数超过 SUM,则需要为所有小桶统一设置一个 maxCapacity,并将超过该容量最大值的小球从桶中取出,直到每个小桶里的小球数量都不大于 maxCapacity。 请你根据输入的数据,计算出尽可能大的容量最大值 maxCapacity,并输出。 限制规则一 如果所有小桶的小球总数小于 SUM,则无需设置容量值,也无需从小桶中拿球,返回结果 []。 限制规则二 如果所有小桶的小球总数大于 SUM,则需要设置一个尽可能大的容量最大值 maxCapacity,并且需要从小桶中拿球,返回从每个小桶拿出的小球数量组成的数组。
提示:带虚线的词点一下有通俗解释。
输入描述
第一行输入2个正整数,数字之间使用空格隔开,其中第一个数字表示SUM,第二个数字表示bucketBallNums数组长度; 第二行输入N个正整数,数字之间使用空格隔开,表示bucketBallNums的每一项。
输出描述
一个数组,表示从每个小桶里拿出的小球数量。
示例
示例 1
输入
14 7 2 3 2 5 5 1 4
输出
[0, 1, 0, 3, 3, 0, 2]
说明:小球总数为22,SUM = 14,超出范围了,需从小桶取球。 - maxCapacity = 1,取出球后,1 1 1 1 1 1 1, 桶里剩余小球总和为7,远小于14 - maxCapacity = 2,取出球后,2 2 2 2 2 1 2,桶里剩余小球总和为13,小于14 - maxCapacity = 3,取出球后,2 3 2 3 3 1 3,桶里剩余小球总和为16,大于14 因此选择maxCapacity为2 ,每个小桶小球数量大于 2 的都需要拿出来。
示例 2
输入
3 3 1 2 3
输出
[0, 1, 2]
说明:小球总数为6,SUM = 3,超出范围了,需从小桶取球。 取maxCapacity = 1,则小球总数为 3,从 0 号桶取出 0 个球,从 1 号桶取出 1 个球,从 2 号桶取出 2 个球。故输出[0, 1, 2]。
示例 3
输入
6 2 3 2
输出
[]
说明:小球总数为5,SUM = 6,无需从小桶取球;
时间限制 1000 ms · 内存限制 128 MB