2616. 屠龙勇士
1000ms
256MB
简单
二分算法
题目描述
在遥远的西西艾佛大陆,有一座城堡。$N$ 名勇士守护着这个城堡,第 $i$ 名勇士有能力值 $a_i$。
一条巨龙觊觎城堡中的财富,它决定进犯城堡。巨龙有攻击值 $X$ 和防御值 $Y$。
为了守卫城堡,每个勇士每消耗 $1$ 金币可以提升 $1$ 点的能力值。当巨龙来犯,他们将派出一名勇士 $p$ 与巨龙作战,剩下的 $N-1$ 名勇士守卫城堡。
想要成功守卫城堡,必须满足:
- 出战的勇士能力值 $a_p \ge Y$
- 剩余的勇士能力值之和 $S \ge X$
为了成功守卫城堡,勇士们最少花费多少金币?
输入格式
输入共两行。
输入的第一行为三个正整数 $N,Y,X$。
输入的第二行为 $N$ 个整数,第 $i$ 个为 $a_i$,代表第 $i$ 个勇士初始的能力值。
输出格式
输出一行一个整数,代表最少消耗的金币数目。
样例 1
输入 (Input)
输出 (Output)
样例 2
输入 (Input)
输出 (Output)
对于 $30\%$ 的数据,$1 \le N \le 5000$,$1 \le X,a_i \le 10^9$;
对于 $100\%$ 的数据,$1 \le N \le 2 \times 10^5$,$1 \le X,a_i \le 10^{12}$,$1 \le Y \le 10^{18}$。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功