#P4985. 砍树

砍树

砍树

课程自编 · 二分答案

题目描述

有 nn 棵树,第 ii 棵树的高度为 hih_i。选择一个整数锯口高度 HH,把所有高于 HH 的部分锯下,得到的木材总量为 ∑i=1nmax⁡(0,hi−H).\sum_{i=1}^{n}\max(0,h_i-H). 求使木材总量至少为 MM 的最大整数 HH。题目保证 MM 不超过所有树的总高度。

输入格式

第一行两个整数 nn 和 MM。第二行 nn 个整数 h1,h2,…,hnh_1,h_2,\dots,h_n。

输出格式

输出一个整数,表示最大的可行锯口高度 HH。

数据范围与约定

1≤n≤5×1051 \le n \le 5\times 10^5,1≤M≤∑hi1 \le M \le \sum h_i,1≤hi≤1091 \le h_i \le 10^9。

样例输入

4 7
20 15 10 17

样例输出

15

样例说明

当 H=15H=15 时,木材量为 (20−15)+(17−15)=7(20-15)+(17-15)=7,恰好满足 M=7M=7;当 H=16H=16 时只有 4+1=54+1=5,不满足。因此答案为 1515。

说明

课程自编题,数据由 src/gen.py 生成。