#58. 奶牛开会

奶牛开会

【题目描述】

农夫约翰在数轴上搭建了 NN 间牛舍,每间牛舍里住着一头奶牛。牛舍编号为 11 ~ NN ,第 ii 号牛舍的坐标为 XiX_i ,所有 XiX_i 都为不超过 MM 的正整数。可能有多间牛舍位于同一个位置。

现在约翰要召集奶牛们开会。他要选择一个开会地点。可是奶牛们太累了。一头奶牛每走一个单位距离,约翰就要支付它 11 美金,否则它就不会听从约翰的召集。

约翰只有 SS 美金。他需要选择一个合适的开会地点,使得他能召集尽可能多的奶牛。开会地点可以由约翰任意指定。

问:约翰能否召集到所有奶牛?如果能,约翰最少需要花费多少美金?如果不能,约翰最多能召集到多少头奶牛?

【输入格式】

第一行:三个整数 N,M,SN, M, S

接下来 NN 行,每行一个整数,依次表示 Xi1iN1XiMX_i(1 ≤ i ≤ N,1 ≤ X_i ≤ M)

【输出格式】

一行:一个整数,如果能召集到所有的奶牛,则输出约翰最少的花费;否则输出约翰最多能召集到的奶牛数目。

【样例1输入】

5 15 5
8
2
1
10
12

【样例1输出】

3

【样例1解释】

将开会地点选择在数轴坐标 X = 10 处,可以召集到 3头奶牛。选择在其他地点均无法召集更多的奶牛。

【样例2输入】

5 15 20
8
2
1
10
12

【样例2输出】

19

【样例2解释】

将开会地点选择在数轴坐标 X = 8 处,可以召集到全部的奶牛,花费为 19 美金。选择在其他地点,要么无法召集到全部的奶牛,要么花费更多。

【数据范围】

共 20 个测试点,全部满足:$ 1 ≤ N ≤ 10^5, 1 ≤ M ≤ 10^9, 0 ≤ S ≤ 2 × 10^{15}, 1 ≤ Xi ≤ M $

具体如下:

测试点编号 NN 的取值范围
121-2 N100N ≤ 100
343-4 N1,000N ≤ 1,000
565-6 N10,000N ≤ 10,000
7207-20 N100,000N ≤ 100,000