CF1084B Kvass and the Fair Nut

题目描述

“Fair Nut” 非常喜欢克瓦斯。在他生日那天,父母送给了他 $n$ 个克瓦斯桶。第 $i$ 个桶中有 $v_i$ 升克瓦斯。每个桶都有一个拉杆,每拉一次可以从该桶中倒出恰好 $1$ 升克瓦斯。 “Fair Nut” 非常喜欢这种饮料,所以他想要倒出 $s$ 升克瓦斯装满他的杯子。但他希望在倒出 $s$ 升后,所有桶中剩余克瓦斯最少的那个桶,其克瓦斯量尽可能多。 请你帮他计算,倒出 $s$ 升克瓦斯后,所有桶中剩余克瓦斯最少的那个桶最多还能有多少升;如果无法倒出 $s$ 升,则输出 $-1$。

输入格式

第一行包含两个整数 $n$ 和 $s$($1 \le n \le 10^3$,$1 \le s \le 10^{12}$),分别表示桶的数量和杯子的容量。 第二行包含 $n$ 个整数 $v_1, v_2, \ldots, v_n$($1 \le v_i \le 10^9$),表示每个桶中的克瓦斯体积。

输出格式

如果无法倒出 $s$ 升克瓦斯,输出 $-1$。否则,输出一个整数,表示所有桶中剩余克瓦斯最少的那个桶最多还能有多少升。

说明/提示

在第一个样例中,答案是 $3$,Fair Nut 可以从第一个桶取 $1$ 升,从第三个桶取 $2$ 升。每个桶中都剩下 $3$ 升克瓦斯。 在第二个样例中,答案是 $2$,Fair Nut 可以从第一个桶取 $3$ 升,从第二个桶取 $1$ 升。 在第三个样例中,Fair Nut 无法倒出 $7$ 升克瓦斯,所以答案是 $-1$。 由 ChatGPT 4.1 翻译