3820 - 能量水晶
描述

小 R 有 n 颗能量水晶,其中第 i(1 \le i \le n)颗的能量值为整数 a_i。

小 R 想用其中若干颗能量水晶合成一颗大水晶,用于合成的水晶必须具有相同的能量值。小 R 希望参与合成的水晶尽可能多。他可以进行至多 m 次操作。每次操作可以任选一颗水晶,将其能量值增加 1;同一颗水晶可以被重复选择。

你需要帮助小 R 求出,进行至多 m 次操作后,他最多能用多少颗能量水晶合成一颗大水晶。

输入

输入的第一行包含一个正整数 n 和一个非负整数 m,分别表示能量水晶的数量和最多可以进行的操作次数。

输入的第二行包含 n 个整数 a_1, a_2, \ldots, a_n,依次表示每颗能量水晶的能量值。

输出

输出一行一个正整数,表示进行至多 m 次操作后,小 R 最多能用多少颗能量水晶合成一颗大水晶。

样例

输入

5 5
1 2 4 8 9

输出

3

输入

5 8
-3 -1 2 2 7

输出

4
提示

样例 1 解释:小 R 有 5 颗能量水晶,能量值分别为 1,2,4,8,9。他可以对能量值为 1 和 2 的水晶分别操作 3 次和 2 次,使原来能量值为 1,2,4 的三颗水晶的能量值都变成 4,共进行 5 次操作。因此小 R 可以用 3 颗能量水晶合成一颗大水晶。

数据范围:对于所有测试数据,均有:

• 1 \le n \le 5 \times 10^5,0 \le m \le 10^{18};

• 对于所有 i(1 \le i \le n),均有 |a_i| \le 10^{12}。

本题共 20 个等分测试点,每点 5 分。

测试点编号n ≤m ≤max|a_i| ≤特殊性质
1, 251020无
3 ~ 516100020无
6, 75000106100无
8, 95000109105无
10 ~ 125 × 105108100无
13 ~ 155 × 10510181012A
16 ~ 185 × 10510181012B
19, 205 × 10510181012无

特殊性质 A:对于所有 i(1 \le i \le n),均有 a_i = i。

特殊性质 B:a_1, a_2, \ldots, a_n 构成等差数列。

附加样例:官方题面另有样例 3、4 两组大样例(分别满足测试点 8,9 与 10~12 的约束),因数据量较大未在此列出。

提示

参与合成的水晶最后都变成了同一个能量值 x,而能量值只能增加,所以它们原来的能量值都不超过 x,花费为 \sum (x - a_i)。把 a 排序之后,一组互不相邻的水晶不会比夹在中间的「更便宜」,因此答案对应排序后的一段连续区间。

于是可以枚举右端点并用双指针维护左端点:窗口 [l, r] 内的花费为 a_r \times (r - l + 1) - \sum_{i=l}^{r} a_i,一旦超过 m 就右移 l。也可以用「答案有单调性」的方式二分长度。

a_i 可以为负,m \le 10^{18},n \le 5 \times 10^5,窗口花费最坏可达 10^{18} \times 10^{12} 量级,中间量务必用 64 位甚至 \texttt{\_\_int128} 保存。

来源
2026 CCF CSP-J/S 第二轮 提高组
标签
题目参数
Time Limit 1 second
Memory Limit 1024 MB
提交次数 3
通过次数 3