目录
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、Python算法源码
- 五、效果展示
- 1、输入
- 2、输出
- 3、说明
一、题目描述
小明有n块木板,第块木板的长度为a_i。
小明买了一块长度为m的木料,这块木料可以切割成任意块,拼接到已有的木板上,用来加长木板。
小明想让最短的木板尽量长。
请问小明加长木板后,最短木板的长度最大可以为多少?
二、输入描述
输入的第一行包含两个正整数,n表示木板数,m表示木料长度。
输入的第二行包含n个正整数。
三、输出描述
输出的唯一一行包含一个正整数,表示加长木板后,最短木板的长度最大可以为多少?
四、Python算法源码
n,m = [int(i) for i in input().split()]
lst = [int(i) for i in input().split()]
least = min(lst)
counts = lst.count(least)
while 1:
if m >= counts:
m -= counts
least += 1
counts += lst.count(least)
else:
print(least)
break
五、效果展示
1、输入
5 3
4 5 3 5 5
2、输出
5
3、说明
给第1块木板长度增加1,给第3块木板长度增加2后,这5块木板长度变为[5,5,5,5,5],最短的木板的长度最大为5。
🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路
🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。