#P14412. [JOISC 2015] AAQQZ

[JOISC 2015] AAQQZ

题目描述

2015 年的国际信息学奥林匹克竞赛在哈萨克斯坦举行。哈萨克斯坦的“哈萨克”在字母表中可拼写为“QAZAQ”,这是一个回文。得知此事的 JOI 君对回文产生了兴趣,于是决定从他看到的文本中构造回文。

JOI 君看到的是一个长度为 NN 的字符串。每个字符对应一个从 1 到 CC 的整数,将字符串的字符替换为整数后得到数列 S=(S1,S2,,SN)S = (S_1, S_2, \dots, S_N)。从数列 SS 的第 ii 项到第 jj 项(1ijN1 \le i \le j \le N)取出的子序列 (Si,Si+1,,Sj)(S_i, S_{i+1}, \dots, S_j) 称为片段 (i,j)(i, j)。当片段 (i,j)(i, j) 与其逆序数列相等,即 $(S_i, S_{i+1}, \dots, S_j) = (S_j, S_{j-1}, \dots, S_i)$ 时,称该片段为回文。

JOI 君通过以下操作构造回文:

  1. 首先,选择一个片段。设所选片段为 TT
  2. 将片段 TT 逆序排序,得到 TT'
  3. 在数列 SS 中,将片段 TT 替换为 TT',得到新数列 SS'。具体而言,若 JOI 君选择片段 (i,j)(i, j),则将 Si,Si+1,,SjS_i, S_{i+1}, \dots, S_j 逆序排序,得到 TiTi+1TjT'_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. 然后,在 SS' 中寻找回文片段。

JOI 君希望通过此操作构造尽可能长的回文。

题目

给定 JOI 君看到的字符串对应的数列 SS,求 JOI 君能够构造出的回文的最大长度。

输入格式

从标准输入读入以下数据:

  • 第一行包含两个整数 N,CN, C,以空格分隔。NN 表示 JOI 君看到的字符串长度,CC 表示字符对应整数的上限。
  • 接下来的 NN 行,每行包含一个整数 SiS_i1iN1 \le i \le N),表示数列 SS 的第 ii 项。

输出格式

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

12 26
26
17
17
17
1
26
1
17
19
20
1
14

8
4 3
1
2
3
2
3

提示

样例 1 解释

在该输入示例中,N=12N = 12C=26C = 26,数列 S=(26,17,17,17,1,26,1,17,19,20,1,14)S = (26, 17, 17, 17, 1, 26, 1, 17, 19, 20, 1, 14)。若对子串 (4,8)(4, 8) 进行升序排序,则得到 S=(26,17,17,1,1,17,17,26,19,20,1,14)S' = (26, 17, 17, 1, 1, 17, 17, 26, 19, 20, 1, 14),此时子串 (1,8)(1, 8) 构成回文。该回文的长度为 8,即为最长可能长度。

样例 2 解释

在该输入示例中,S=(1,2,3,2)S = (1, 2, 3, 2)。若对片段 (1,1)(1, 1) 进行升序排序,则得到 S=(1,2,3,2)S' = (1, 2, 3, 2)。此时 SSSS' 相同。在 SS' 中,子串 (2,4)(2, 4) 构成回文。该回文的长度为 3,即为最长可能长度。

数据范围

所有输入数据满足以下条件:

  • 1N30001 \le N \le 3000
  • 1C30001 \le C \le 3000
  • 1SiC1 \le S_i \le C1iN1 \le i \le N

子任务

子任务 1 [10 分]

满足以下条件:

  • N50N \le 50
  • C50C \le 50

子任务 2 [90 分]

无额外限制。