2393. 疯狂切割电缆

1000ms 256MB 简单 递归算法 二分算法
题目描述
某通信工程公司采购了 $n$ 卷不同长度的电缆,现在由于施工需要,要把这些电缆切割成 $k$ 段长度**均**为 $l$ 的小段电缆(允许有剩余的电缆材料)。 为了保证施工质量并减少接头数量,我们希望切出的小段电缆长度 $l$ 越长越好。请编写程序,求出满足要求的长度 $l$ 的最大值。 电缆长度的单位是米($\text{m}$)。采购的电缆初始长度均为正整数,切割后得到的小段电缆长度也必须是正整数。 例如,现有两卷电缆,长度分别为 $11\text{m}$ 和 $21\text{m}$,要求切割成等长的 $6$ 段。显然能够切出的最大单段长度为 $5\text{m}$(第一卷切出 2 段,第二卷切出 4 段,共 6 段)。
输入格式
- 第一行包含两个正整数 $n$ 和 $k$ ($1 \le n \le 10^5, \quad 1 \le k \le 10^8$),分别表示电缆的卷数和需要得到的小段电缆的数量。 - 接下来 $n$ 行,每行包含一个正整数 $L_i$ ($1 \le L_i \le 10^8$),表示每卷电缆的初始长度。
输出格式
- 输出一行一个整数,即最大长度 $l$ 的值。 - 如果所有电缆长度的总和小于 $k$(即连 $1\text{m}$ 的小段都无法切出需要的数量),则输出 `0`。
样例 1
输入 (Input)
3 7
232
124
456
输出 (Output)
114
- 对于 $100\%$ 的数据:$1 \le n \le 10^5$,$1 \le k \le 10^8$,$1 \le L_i \le 10^8$。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字