砍树
课程自编 · 二分答案
题目描述
有 n 棵树,第 i 棵树的高度为 hi。选择一个整数锯口高度 H,把所有高于 H 的部分锯下,得到的木材总量为
∑i=1nmax(0,hi−H).
求使木材总量至少为 M 的最大整数 H。题目保证 M 不超过所有树的总高度。
输入格式
第一行两个整数 n 和 M。第二行 n 个整数 h1,h2,…,hn。
输出格式
输出一个整数,表示最大的可行锯口高度 H。
数据范围与约定
1≤n≤5×105,1≤M≤∑hi,1≤hi≤109。
样例输入
4 7
20 15 10 17
样例输出
15
样例说明
当 H=15 时,木材量为 (20−15)+(17−15)=7,恰好满足 M=7;当 H=16 时只有 4+1=5,不满足。因此答案为 15。
说明
课程自编题,数据由 src/gen.py 生成。