CF1671C Dolce Vita
题目描述
动荡的时期即将到来,所以你决定提前购买糖。周围有 $n$ 家商店出售糖:第 $i$ 家商店每包糖售价 $a_i$ 个硬币,但每天每位顾客只能买一包。因此,如果你想买多包糖,就需要去多家商店。
另一个问题是价格每天都在上涨:第 $i$ 家商店第一天的价格是 $a_i$,第二天是 $a_i + 1$,第三天是 $a_i + 2$,以此类推。
相反,你每天的预算只有 $x$ 个硬币。换句话说,每天你会尽可能多地购买糖包,使得总花费不超过 $x$。注意,如果某天没有花完的硬币,不能留到下一天使用。
最终,每包糖的价格都会超过你的每日预算,你将无法再买到任何糖包。那么,在此之前你总共能买到多少包糖?
输入格式
第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来是 $t$ 个测试用例。
每个测试用例的第一行包含两个整数 $n$ 和 $x$($1 \le n \le 2 \cdot 10^5$;$1 \le x \le 10^9$),分别表示商店数量和你的每日预算。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),表示每家商店初始时每包糖的价格。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示在价格超过你的每日预算之前你总共能买到的糖包数。
说明/提示
在第一个测试用例中:
- 第一天:价格为 $[2, 1, 2]$。你可以买下全部 $3$ 包,因为 $2 + 1 + 2 \le 7$。
- 第二天:价格为 $[3, 2, 3]$。你无法买下全部 $3$ 包,因为 $3 + 2 + 3 > 7$,所以只能买 $2$ 包。
- 第三天:价格为 $[4, 3, 4]$。你可以买 $2$ 包,价格分别为 $4$ 和 $3$。
- 第四天:价格为 $[5, 4, 5]$。你无法再买 $2$ 包,只能买 $1$ 包。
- 第五天:价格为 $[6, 5, 6]$。你可以买 $1$ 包。
- 第六天:价格为 $[7, 6, 7]$。你可以买 $1$ 包。
- 第七天:价格为 $[8, 7, 8]$。你仍然可以买价格为 $7$ 的 $1$ 包。
- 第八天:价格为 $[9, 8, 9]$。价格太高,无法购买。
总共你买了 $3 + 2 + 2 + 1 + 1 + 1 + 1 = 11$ 包糖。
在第二个测试用例中,第一天价格就太高,无法购买任何糖包。
在第三个测试用例中,你只能在第一天买一包。
在第四个测试用例中,前 $500$ 天你每天可以买 $2$ 包。第 $501$ 天价格为 $[501, 501]$,之后 $500$ 天每天只能买 $1$ 包。第 $1001$ 天价格为 $[1001, 1001]$,无法再购买。总共买了 $500 \cdot 2 + 500 \cdot 1 = 1500$ 包糖。
由 ChatGPT 4.1 翻译