#3850. KKT基本算法砍伐树木
KKT基本算法砍伐树木
题目描述
lxj 被 cxy 叫去砍树,他需要砍倒 米长的木材。现在,lxj 弄到了一个奇怪的伐木机。伐木机工作过程如下:设置一个高度参数 (米),伐木机升起一个巨大的锯片到高度 ,并锯掉所有的树比 高的部分(当然,树木不高于 米的部分保持不变)。lxj 就得到树木被锯下的部分。
例如,如果一行树的高度分别为 、、 和 米,lxj 把锯片升到 米的高度,切割后树木剩下的高度将是 、、 和 米,而 lxj 将从第 棵树得到 米,从第 棵树得到 米,共得到 米木材。
lxj 非常关注生态保护,所以他不会砍掉过多的木材。这正是他为什么要尽可能高地设定伐木机锯片的原因。帮助 lxj 找到伐木机锯片的最大的整数高度 ,使得他能得到的木材至少为 米。换句话说,如果再升高 米,则他将得不到 米木材。
输入格式
第 行两个整数 和 , 表示树木的数量, 表示需要的木材总长度。
第 行 个整数,表示每棵树的高度,值均不超过 。保证所有木材长度之和大于 ,因此必然有解。
输出格式
一行一个整数,表示伐木机锯片的最大整数高度 。
样例
5 20
4 42 40 26 46
36
样例解释
当伐木机锯片高度设置为 米时,各棵树被锯下的长度分别为:
- 第 棵树高度 米,低于 米,锯下 米;
- 第 棵树高度 米,锯下 米;
- 第 棵树高度 米,锯下 米;
- 第 棵树高度 米,低于 米,锯下 米;
- 第 棵树高度 米,锯下 米。
总共锯下 米,恰好满足需要的 米木材。若将锯片高度升高到 米,锯下的木材长度不足 米,因此 是满足条件的最大整数高度。
数据范围与提示
- 对于 的数据满足:,。
- 对于 的数据满足:,。
- 对于 的数据满足:,。
所有树的高度均不超过 ,所有木材长度之和大于 ,因此必然有解。