P16552 [ICPC 2026 LAC] Fun with Balls
题目描述
Antonella 有 $N$ 个彩色球,她希望用它们搭建一个**稳定的**球堆。一个球堆是稳定的,当且仅当每个球要么放在地面上,要么恰好放在另外两个球的正上方。此外,放在地面上的球必须紧密排列,这意味着它们之间不应有空隙。下图展示了三种球的排列方式:左侧是一个稳定的球堆,而另外两个则是失败的尝试。
:::align{center}

:::
Antonella 希望通过一个逐步添加的过程来搭建稳定的球堆。首先,她会挑选一个球并将其放置在地面上,形成一个仅由一个球构成的稳定球堆。然后,她将逐个添加剩余的 $N-1$ 个球,并在每一步都保持球堆的稳定性。如果存在多个可以添加球的位置,她会选择**最高**的位置(相对于地面)。若仍有多个可选位置,她可以任选其一。
在稳定球堆中,若对于某个球集中的任意两个球 $s$ 和 $t$,存在一个球的序列 $s = b_0, b_1, \dots, b_k = t$,使得对于 $i = 1, 2, \dots, k$,$b_{i-1}$ 与 $b_i$ 相接触,则称该球集是**连通的**。一个**同色团**是由相同颜色的球构成的连通球集。同色团的**大小**是指它所包含的球的数量。上图所示的稳定球堆中包含两个红色的同色团,大小分别为 $3$ 和 $1$,一个绿色的同色团大小为 $3$,以及一个蓝色的同色团大小为 $6$。
给定 Antonella 将使用的球的颜色顺序,你需要求出在所有可能搭建出的稳定球堆中,所有同色团大小的最大值。
输入格式
第一行包含一个整数 $N$($1 \le N \le 150$),表示球的数量。
第二行包含 $N$ 个整数 $K_1, K_2, \dots, K_N$(对于 $i = 1, 2, \dots, N$,有 $1 \le K_i \le 150$),其中 $K_i$ 表示 Antonella 将要添加的第 $i$ 个球的颜色。
输出格式
输出一行一个整数,表示在所有可能搭建出的稳定球堆中,所有同色团大小的最大值。
说明/提示
**样例 1 解释:**
Antonella 会将第一个球(颜色 $1$)放在地面上。她也会将第二个球(颜色 $2$)放在地面上,但可以放在第一个球的左侧或右侧。当插入第三个球(颜色 $1$)时,她会将它放在前两个球的正上方。无论 Antonella 如何选择第二个球的位置,最终得到的稳定球堆中都会包含一个大小为 $2$ 的同色团(颜色 $1$)和一个大小为 $1$ 的同色团(颜色 $2$)。因此,所有可能稳定球堆中同色团大小的最大值为 $2$。
翻译由 DeepSeek V4 Pro 完成