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 \le n \le 200\,000$
- $0 \le k \le 200\,000$
- $1 \le c[i] \le 3$ 对于所有 $1 \le i \le n$
你的程序将在满足以下限制的输入实例上进行测试:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 0 | 0 | 样例测试用例 |
| 1 | 5 | $n \le 500$ |
| 2 | 9 | $n \le 2000$ |
| 3 | 11 | $c[i] \le 2$ |
| 4 | 15 | $k = 0$ |
| 5 | 16 | 存在 $1 \le j \le n$ 使得对于所有 $i \le j$ 有 $c[i] \neq 3$,且对于所有 $i > j$ 有 $c[i] = 3$ |
| 6 | 20 | 在任何连续的 $3$ 只或更多猛禽序列中,颜色 $3$ 是最不常见的 |
| 7 | 24 | 无附加限制 |
样例
输入格式 1
11 2 2 2 1 2 1 3 2 1 2 1 1
输出格式 1
7
说明
从第 $3$ 只猛禽到第 $9$ 只猛禽,颜色为 $1, 2, 3$ 的猛禽数量分别为 $3, 3, 1$。由于最大频率与最小频率之差不超过 $k = 2$,这组猛禽满足 WhiteRaptor 的标准。
一个无效的猛禽集合示例是从第 $3$ 只猛禽到第 $10$ 只猛禽,因为增加另一只 $c[i] = 1$ 的猛禽会导致最常见颜色的频率变为 $4$。由此产生的最大频率与最小频率之差为 $3$,超过了 $k = 2$。
可以证明 $7$ 是 WhiteRaptor 在满足其标准的前提下能保留的最大猛禽数量。
输入格式 2
6 2 2 1 3 3 3 3
输出格式 2
5
说明 2
WhiteRaptor 应该选择从第 $1$ 只到第 $5$ 只猛禽。
输入格式 3
7 0 1 2 1 2 1 2 1
输出格式 3
0
说明 3
由于任何连续的猛禽序列都不会包含颜色为 $3$ 的猛禽,因此最不常见颜色的频率将始终为 $0$。这意味着 WhiteRaptor 无法选择任何非空的猛禽序列。因此,输出为 $0$。
注意,此测试用例满足子任务 $5$,因为我们可以令 $j = n$(不会出现颜色为 $3$ 的猛禽)。