3885: 救助流浪狗(余博士教编程2024)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

小酷宝去包子铺当学徒,他看到路上的流浪狗很可怜,于是他想做一些包子给流浪狗吃,
现在共有 n 只狗,每只狗的食量分别为 𝑎1, 𝑎2, 𝑎3 … 𝑎𝑛 大小的包子(如果一个包子被一只
狗吃了一部分,那么另外一只狗就不会吃这个包子),现在小酷宝一共能够做 m 个包子,
每个包子至少要做多大才能让所有的狗吃饱(包子最大只能做到10^18)

输入

输入的第一行包含两个正整数 n, m,表示狗的数量和小酷宝能做的包子的数量。
第二行输入 n 个整数,𝑎𝑎1, 𝑎𝑎2, 𝑎𝑎3 … 𝑎𝑎𝑛𝑛 分别表示 n 个狗的食

输出

输出一个整数表示包子至少要做多大才能让所有的狗吃饱,如果不能让所有的狗都吃饱,
则输出-1。

样例输入 复制

10 12
10 9 8 7 6 5 4 3 2 1

样例输出 复制

8

提示

【样例 1 输入】
10 12
10 9 8 7 6 5 4 3 2 1
【样例 1 输出】
8
【样例 1 解释】
如果每个包子大小为 8,那么第 1,2 只狗需要吃 2 个包子,第 3~10 只狗需要吃 1 个包
子,这样刚好能够让所有的狗都吃饱,需要 12 个包子,满足条件。并且可以证明更小的
包子没办法让所有的狗都吃饱了,所以每个包子至少需要做到 8 那么大。
【样例 2 输入】
2 1
1000000000000000000 1
【样例 2 输出】
-1
【样例 2 解释】
现在只能做 1 个包子,而有两只狗,所以不能让所有的狗都吃饱,所以输出 -1。
【样例 3】
见目录下的 rescue/rescue03.in 与 rescue/rescue03.ans
【数据范围】
对于所有测试数据有:1 ≤ n, m ≤ 104,1 ≤ 𝑎𝑎𝑖𝑖 ≤ 1018。