P14412 [JOISC 2015] AAQQZ

题目描述

2015 年的国际信息学奥林匹克竞赛在哈萨克斯坦举行。哈萨克斯坦的“哈萨克”在字母表中可拼写为“QAZAQ”,这是一个回文。得知此事的 JOI 君对回文产生了兴趣,于是决定从他看到的文本中构造回文。 JOI 君看到的是一个长度为 $N$ 的字符串。每个字符对应一个从 1 到 $C$ 的整数,将字符串的字符替换为整数后得到数列 $S = (S_1, S_2, \dots, S_N)$。从数列 $S$ 的第 $i$ 项到第 $j$ 项($1 \le i \le j \le N$)取出的子序列 $(S_i, S_{i+1}, \dots, S_j)$ 称为片段 $(i, j)$。若将片段 $(i, j)$ 前后翻转后和原来相等,即 $(S_i, S_{i+1}, \dots, S_j) = (S_j, S_{j-1}, \dots, S_i)$ 时,称该片段为回文。 JOI 君通过以下操作构造回文: 1. 首先,选择一个片段。设所选片段为 $T$。 2. 将片段 $T$ 升序排序,得到 $T'$。 3. 在数列 $S$ 中,将片段 $T$ 替换为 $T'$,得到新数列 $S'$。具体而言,若 JOI 君选择片段 $(i, j)$,则将 $S_i, S_{i+1}, \dots, S_j$ 升序排序,得到 $T'_i \le T'_{i+1} \le \dots \le T'_j$,并令 $S' = (S_1, S_2, \dots, S_{i-1}, T'_i, T'_{i+1}, \dots, T'_j, S_{j+1}, \dots, S_N)$。 4. 然后,在 $S'$ 中寻找回文片段。 JOI 君希望通过此操作构造尽可能长的回文。 给定 JOI 君看到的字符串对应的数列 $S$,求 JOI 君能够构造出的回文的最大长度。

输入格式

从标准输入读入以下数据: - 第一行包含两个整数 $N, C$,以空格分隔。$N$ 表示 JOI 君看到的字符串长度,$C$ 表示字符对应整数的上限。 - 接下来的 $N$ 行,每行包含一个整数 $S_i$($1 \le i \le N$),表示数列 $S$ 的第 $i$ 项。

输出格式

在标准输出上,输出一个整数,表示 JOI 君能够构造出的回文的最大长度。

说明/提示

### 样例 1 解释 在该输入示例中,$N = 12$,$C = 26$,数列 $S = (26, 17, 17, 17, 1, 26, 1, 17, 19, 20, 1, 14)$。若对子串 $(4, 8)$ 进行升序排序,则得到 $S' = (26, 17, 17, 1, 1, 17, 17, 26, 19, 20, 1, 14)$,此时子串 $(1, 8)$ 构成回文。该回文的长度为 8,即为最长可能长度。 ### 样例 2 解释 在该输入示例中,$S = (1, 2, 3, 2)$。若对片段 $(1, 1)$ 进行升序排序,则得到 $S' = (1, 2, 3, 2)$。此时 $S$ 与 $S'$ 相同。在 $S'$ 中,子串 $(2, 4)$ 构成回文。该回文的长度为 3,即为最长可能长度。 ### 数据范围 所有输入数据满足以下条件: - $1 \le N \le 3000$ - $1 \le C \le 3000$ - $1 \le S_i \le C$($1 \le i \le N$) ### 子任务 #### 子任务 1 [10 分] 满足以下条件: - $N \le 50$ - $C \le 50$ #### 子任务 2 [90 分] 无额外限制。