#P1512. 分割

分割

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,...,AN)A=(A_1,A_2,...,A_N)。你要把 AA 分成连续的两段。

形式上,你要选择一个整数 ii 满足 1iN1≤i≤N,然后把 AA 分成 (A1,A2,...,Ai)(A_1,A_2,...,A_i)(Ai+1,Ai+2,...,AN)(A_{i+1},A_{i+2},...,A_N) 这两部分。

xx(A1,A2,...,Ai)(A_1,A_2,...,A_i) 中不同整数的个数,yy(Ai+1,Ai+2,...,AN)(A_{i+1},A_{i+2},...,A_N) 中不同整数的个数,你想要让 x+yx+y 最大。求出这个最大值。

输入格式

第一行一个正整数 NN,表示序列 AA 的长度。

第二行 NN 个整数 A1,A2,...,ANA_1,A_2,...,A_N,表示序列 AA

输出格式

输出 x+yx+y 的最大值。

5
3 1 4 1 5
5
  • i=1i = 1 时,AA 被分成了 (3)(3)(1,4,1,5)(1, 4, 1, 5),此时 x=1,y=3,x+y=4x = 1, y = 3, x + y = 4
  • i=2i = 2 时,AA 被分成了 (3,1)(3, 1)(4,1,5)(4, 1, 5),此时 x=2,y=3,x+y=5x = 2, y = 3, x + y = 5
  • i=3i = 3 时,AA 被分成了 (3,1,4)(3, 1, 4)(1,5)(1, 5),此时 x=3,y=2,x+y=5x = 3, y = 2, x + y = 5
  • i=4i = 4 时,AA 被分成了 (3,1,4,1)(3, 1, 4, 1)(5)(5),此时 x=3,y=1,x+y=4x = 3, y = 1, x + y = 4。 综上所述,x+yx + y 的最大值为 55
10
2 5 6 5 2 1 7 9 7 2
8

数据范围/提示

对于所有的数据,2N3×1052≤N≤3×10^51AiN1≤A_i≤N

测试点编号 nn 特殊性质
121 ∼ 2 =2= 2
353 ∼ 5 100\le 100
676 ∼ 7 5000≤ 5000
88 3×105\le 3\times 10^5 AA 中有 n1n - 1 个不同元素
9109 ∼ 10