D. 完美数列

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

小途有 n 个非负整数,分别为 a_1,a_2,\cdots,a_n 。小途可以任选一个数,然后可以花费 p 元让该数减小 1。每个数可以被多次减小,但是最多只能被减小到 0。

小途现在拥有 w 元,他想使用这些钱减小某些数后,使得这 n 个数的最大值尽可能小,只有这样小途才会认为这个数列非常完美。

你需要计算出使用 w 减小某些数后,n 个数的最小的最大值。

输入格式

第一行输入三个以空格隔开的整数 n,p,w,含义如上。

第二行输入 n 个以空格隔开的非负整数 a_i ,表示小途最初拥有的 n 个数。

输出格式

输出共一行,一个整数,表示在当前的钱数下,减小某些数后,n 个数的最小的最大值。

样例

样例输入1

5 1 3
1 2 3 4 5

样例输出1

3

样例解释1

现在剩余钱数 w=3,我们可将 5 减少 1,那么数列变为:1 2 3 4 4;

现在剩余钱数 w=2,我们可将 4 减少 1,那么数列变为:1 2 3 4 3;

现在剩余钱数 w=1,我们可将 4 减少 1,那么数列变为:1 2 3 3 3;

现在剩余钱数为 w=0,不能再减少任意一个数了,此时可以获得最大值为 3。当前处理方法获得的最大值最小。

样例输入2

8 2 5
2 0 2 2 0 4 2 4 

样例输出2

3

样例解释2

现在剩余钱数 w=5,我们可将 4 减少 1,那么数列变为:2 0 2 2 0 4 2 3;

现在剩余钱数 w=3,我们可将 4 减少 1,那么数列变为:2 0 2 2 0 3 2 3;

现在剩余钱数为 w=1,不能再减少任意一个数了,此时可以获得最大值为 3。当前处理方法获得的最大值最小。

数据范围与提示

对于 30% 的数据, 1\leq n \leq 1000, p = 1, 0\leq w \leq 1000

对于另外 30% 的数据, 1\leq n \leq 10^5, 1\leq p \leq 10, 0\leq w \leq 10^6

对于 100% 的数据, 1\leq n \leq 10^5,1\leq p \leq 1000,0\leq w \leq 10^{14},0\leq a_i \leq 10^9