2358. 伐木工
时间限制:1000 MS 内存限制:128 MB
题目描述
## 题目描述 伐木工人小火龙需要砍倒 $M $米长的木材。这是一个对小火龙来说很容易的工作,因为他有一个漂亮的新伐木机,可以像野火一样砍倒森林。不过,小火龙只被允许砍倒单行树木。 小火龙的伐木机工作过程如下:小火龙设置一个高度参数 $H$(米),伐木机升起一个巨大的锯片到高度$ H$,并锯掉所有的树比$ H$ 高的部分(当然,树木不高于$ H $米的部分保持不变)。小火龙就得到树木被锯下的部分。 例如,如果一行树的高度分别为 $20,15,10 $和$ 17$ ,小火龙把锯片升到$ 15 $米的高度,切割后树木剩下的高度将是 $15,15,10 $和 $15$,而小火龙将从第$ 1$ 棵树得到$ 5 $米,从第 $4 $棵树得到$ 2 $米,共得到$ 7$ 米木材。 小火龙非常关注生态保护,所以他不会砍掉过多的木材。这正是他为什么尽可能高地设定伐木机锯片的原因。帮助小火龙找到伐木机锯片的最大的整数高度$ H $,使得他能得到木材至少为 $M$ 米。换句话说,如果再升高$ 1$米,则他将得不到$ M$米木材。 ## 输入格式 第 $1 $行:$2 $个整数 $N $和 $M,N $表示树木的数量$(1\leN\le10^6)$,$M $表示需要的木材总长度$(1\leM\le2\times10^9)$。 第 $2$ 行:$N$ 个整数表示每棵树的高度,值均不超过$ 10^9$。所有木材长度之和大于$ M $,因此必有解。 ## 输出格式 $1 $个整数,表示砍树的最高高度。 ## 输入 ```in1 5 20 4 42 40 26 46 ``` ## 输出 ```out1 36 ``` ## 提示