P15849 [NOISG 2026 Finals] 三只迅猛龙 / 3 Raptors【暂无数据】
题目描述
WhiteRaptor 终于在 TheRaptorLand 找到了他的同类!与普通的 WhiteRaptor 不同,TheRaptorLand 拥有各种颜色的迅猛龙:PinkRaptor、BlueRaptor 和 GreenRaptor。
WhiteRaptor 将 TheRaptorLand 中的所有 $n$ 只迅猛龙排成一行,从左到右编号为 $1$ 到 $n$。从左数第 $i$ 只迅猛龙的颜色为 $c[i]$。他想选择一些迅猛龙永远陪伴在他的地下室。然而,他只能通过从队伍的**左端和右端**移除零只或多只迅猛龙,并保留所有剩余的迅猛龙来实现这一点。
为了确保没有剩余的迅猛龙被排斥,他希望**最常见迅猛龙颜色的频率**与**最不常见迅猛龙颜色的频率**之间的差值不超过 $k$。注意,如果没有某种颜色的迅猛龙剩余,则最不常见颜色的频率将为 $0$。
请帮助 WhiteRaptor 找出他能保留的迅猛龙的最大数量!
输入格式
你的程序需要从标准输入读取数据。
输入的第一行包含两个整数 $n$ 和 $k$。
输入的第二行包含 $n$ 个由空格分隔的整数 $c[1], c[2], \dots, c[n]$。
输出格式
你的程序需要向标准输出写入数据。
输出一个整数,表示他能保留的迅猛龙的最大数量。
说明/提示
### 样例测试 #1 解释
从迅猛龙 $3$ 到迅猛龙 $9$,$c[i] = 1, 2, 3$ 的迅猛龙数量分别为 $3, 3, 1$。由于最大频率与最小频率之间的差值不超过 $k = 2$,这组迅猛龙满足 WhiteRaptor 的标准。
一个无效的迅猛龙集合的例子是从迅猛龙 $3$ 到迅猛龙 $10$,因为增加另一只 $c[i] = 1$ 的迅猛龙会导致最常见颜色的频率变为 $4$。由此产生的最大频率与最小频率之间的差值为 $3$,超过了 $k = 2$。
可以证明,$7$ 是 WhiteRaptor 在仍满足其标准的情况下能保留的迅猛龙的最大数量。
### 样例测试 #2 解释
WhiteRaptor 应该选择从迅猛龙 $1$ 到迅猛龙 $5$ 的迅猛龙。
### 样例测试 #3 解释
由于任何连续的迅猛龙序列都不会包含 $c[i] = 3$ 的迅猛龙,最不常见颜色的频率将始终为 $0$。这意味着 WhiteRaptor 无法选择任何非空的迅猛龙序列。因此,输出为 $0$。
注意,这个测试用例满足子任务 5 的条件,因为我们可以令 $j = n$(没有颜色 3 的迅猛龙会出现)。
### 子任务
对于所有测试用例,输入数据满足以下限制:
- $1 \leq n \leq 200\,000$
- $0 \leq k \leq 200\,000$
- 对于所有 $1 \leq i \leq n$,有 $1 \leq c[i] \leq 3$
你的程序将在满足以下限制的输入实例上进行测试:
| 子任务 | 分数 | 额外约束条件 |
|:-:|:-:|:-:|
| 0 | 0 | 样例测试用例 |
| 1 | 5 | $n \leq 500$ |
| 2 | 9 | $n \leq 2000$ |
| 3 | 11 | $c[i] \leq 2$ |
| 4 | 15 | $k = 0$ |
| 5 | 16 | 存在一个 $1 \leq j \leq n$,使得对于所有 $i \leq j$ 有 $c[i] \ne 3$,且对于所有 $i > j$ 有 $c[i] = 3$ |
| 6 | 20 | 在任何连续的 3 只或更多迅猛龙的序列中,颜色 3 是最不常见的。 |
| 7 | 24 | 无额外约束 |
翻译由 DeepSeek V3.2 完成