#1439. 数组种类

数组种类

题目描述

给定一个长度为 NN 的整数列 A=(A1,A2,,AN)A=(A_1, A_2, \ldots, A_N)

当在 AA 的某一位置将其分割为 22 个非空的连续子序列时,求这两个子序列中不同整数的种类数之和的最大可能值。

更严格地说,对于满足 1iN11 \leq i \leq N-1 的整数 ii,分别计算子序列 (A1,A2,,Ai)(A_1, A_2, \ldots, A_i)(Ai+1,Ai+2,,AN)(A_{i+1}, A_{i+2}, \ldots, A_N) 中不同整数的种类数之和,并求这些和的最大值。

输入格式

输入通过标准输入给出,格式如下:

NN
A1A_1 A2A_2 \ldots ANA_N

输出格式

输出答案。

输入输出样例 #1

输入 #1

5
3 1 4 1 5

输出 #1

5

输入输出样例 #2

输入 #2

10
2 5 6 5 2 1 7 9 7 2

输出 #2

8

样例解释 1

  • i=1i=1 时,子序列 (3)(3)(1,4,1,5)(1,4,1,5) 各自包含的整数种类数分别为 1133,和为 44
  • i=2i=2 时,子序列 (3,1)(3,1)(4,1,5)(4,1,5) 各自包含的整数种类数分别为 2233,和为 55
  • i=3i=3 时,子序列 (3,1,4)(3,1,4)(1,5)(1,5) 各自包含的整数种类数分别为 3322,和为 55
  • i=4i=4 时,子序列 (3,1,4,1)(3,1,4,1)(5)(5) 各自包含的整数种类数分别为 3311,和为 44

因此,当 i=2i=2i=3i=3 时,取到最大值 55

限制与约定

对于 40%40\% 的数据,2N1002 \leq N \leq 100

对于 100%100\% 的数据, 2N3×1052 \leq N \leq 3 \times 10^5 1AiN1 \leq A_i \leq N (1iN1 \leq i \leq N) 输入均为整数

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB