#58. 奶牛开会
奶牛开会
【题目描述】
农夫约翰在数轴上搭建了 间牛舍,每间牛舍里住着一头奶牛。牛舍编号为 ~ ,第 号牛舍的坐标为 ,所有 都为不超过 的正整数。可能有多间牛舍位于同一个位置。
现在约翰要召集奶牛们开会。他要选择一个开会地点。可是奶牛们太累了。一头奶牛每走一个单位距离,约翰就要支付它 美金,否则它就不会听从约翰的召集。
约翰只有 美金。他需要选择一个合适的开会地点,使得他能召集尽可能多的奶牛。开会地点可以由约翰任意指定。
问:约翰能否召集到所有奶牛?如果能,约翰最少需要花费多少美金?如果不能,约翰最多能召集到多少头奶牛?
【输入格式】
第一行:三个整数
接下来 行,每行一个整数,依次表示 。
【输出格式】
一行:一个整数,如果能召集到所有的奶牛,则输出约翰最少的花费;否则输出约翰最多能召集到的奶牛数目。
【样例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 $
具体如下:
| 测试点编号 | 的取值范围 |
|---|---|