某村有m个村民,所有村民的资产均不相同,村长收到一笔n元的捐款,村长计划将捐款分给村民,是尽可能多的村民拥有相同的资产,剩余的资产将保留为集体资产。
请帮村长分配捐款,使得在最多村民拥有相同资产的前提下,并剩余尽可能少的捐款。如果某村民不能通过分配捐款拥有相同的资产,则不予分配。如果有三个村民的资产是10, 3, 1,待分配捐款为8, 则分配结果为10, 10, 1,剩余1的捐款无法使第三个村民的资产达到10, 所以不予分配。
输入:
第一行:村民数目m
第二行:大小为m的数组a,表示第1 - m 个村民的资产金额,以空格分隔,数组a的所有元素均不相同
第三行:捐款数目n
输出
返回拥有相同资产的村民数以及剩余捐款数,以空格间隔。
样例1
输入:
5
2 9 3 1 6
4
输出:
3 1
样例2
输入:
3
5 1 20
2
输出:
1 2
思路:
采用滑动窗口的思想去找最多人数及其对应的最低剩余捐款
代码:
def func():