#993. 酒和水
酒和水
题目描述
有 个杯子,每个杯子里都装有无色透明的液体。 具体来说,第 个()杯子里装有 毫升的液体。 已知这些杯子中恰好有 个装的是清酒(米酒),其余的装的是水。 然而,并不知道具体哪些杯子里装的是清酒。
高桥君可以选择一些(一个或多个)杯子并喝掉里面所有的液体。
为了保证无论哪些杯子里装的是清酒,他都至少能喝到 毫升的清酒,请问他最少需要选择多少个杯子?
如果无论如何选择都无法保证达成目标,请输出 -1。
输入格式
第一行包含三个整数 和 —— 分别表示杯子的总数、装有清酒的杯子数以及目标清酒量的最小值。
第二行包含 个整数 —— 表示每个杯子中液体的体积。
输出格式
输出一行,一个整数,表示高桥君最少需要选择的杯子数量。如果无法满足条件,输出 -1。
样例输入 1
3 2 5
10 6 8
样例输出 1
2
样例输入 2
2 1 8
6 10
样例输出 2
-1
样例输入 3
5 3 3000000000
1000000000 1000000000 1000000000 1000000000 1000000000
样例输出 3
5
说明
样例解释
- 在第一个样例中,考虑高桥君选择第 杯和第 杯并喝掉的情况。
由于三个杯子中有两个装的是清酒,所以有以下三种可能的情况:
- 如果第 杯和第 杯是清酒:他喝下了 毫升的清酒和 毫升的水。
- 如果第 杯和第 杯是清酒:他喝下了 毫升的清酒。
- 如果第 杯和第 杯是清酒:他喝下了 毫升的清酒和 毫升的水。 因此,在所有可能的情况下,他都能喝到至少 毫升的清酒。 另一方面,如果只选择 个杯子,在不知道哪个是清酒的情况下,是无法保证一定能喝到至少 毫升清酒的。 所以输出 。
- 在第二个样例中,如果第 杯里装的是清酒,那么无论选择哪些杯子,最多也只能喝到 毫升清酒,无法达到 毫升或以上。因此输出
-1。
数据范围
对于所有测试点,保证:
- 。
- 。
- 。
- 保证所有的输入数值均为整数。