AT_abc438_c [ABC438C] 1D puyopuyo

题目描述

给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。 你可以执行以下操作零次或多次(任意顺序,任意次数): · 选择一个整数 $k$ 满足 $1 \leq k \leq |A|-3 且 A_k=A_{k+1}=A_{k+2}=A_{k+3}$,然后从 $A$ 中删除 $A_k,A_{k+1},A_{k+2},A_{k+3}$。(更准确地说,将 $A$ 替换为 $(A_1,A_2,\ldots,A_{k-1},A_{k+4},A_{k+5},\ldots,A_N)$。) 这里,$|A|$ 表示整数序列 $A$ 的长度。 求重复进行操作后,最终 $|A|$ 可能的最小值。

输入格式

输入以以下格式从标准输入给出: >$N A_1 A_2 \ldots A_N$

输出格式

输出重复进行操作后,最终 $|A|$ 可能的最小值。

说明/提示

### 样例解释 1 可以通过以下两次操作使 $|A|=2$: - 选择 $k=4$。由于 $A_4=A_5=A_6=A_7=4$ 成立,该选择有效。序列变为 $A=(1,1,1,1,2,3)$。 - 选择 $k=1$。由于 $A_1=A_2=A_3=A_4=1$ 成立,该选择有效。序列变为 $A=(2,3)$。 无法使 $|A|$ 小于 $2$,因此输出 $2$。 ### 样例解释 2 从一开始就无法执行任何操作。 ### 约束条件 - $1 \le N \le 2 \times 10^5$ - $1 \le A_i \le N$ - 输入的所有值都是整数。