#P14130. 【MX-X22-T1】「TPOI-4A」MEX Problem

【MX-X22-T1】「TPOI-4A」MEX Problem

题目描述

给定长度为 nn 的非负整数序列 a1,,ana_1, \ldots, a_n

你需要将这个序列划分为尽可能多个子序列,使得:

  • 每个子序列至少包含一个元素;
  • 每个元素被划分进了恰好一个子序列;
  • 每个子序列的 mex\operatorname*{mex} 都不为 00

设子序列个数为 kk,你只需要求出满足条件的 kk 的最大可能值。如果不存在满足条件的 kk,输出 00

子序列的定义:从原序列中选取一部分元素,不改变它们在原序列中的相对顺序,得到的新序列。

非负整数序列的 mex\textbf{mex} 的定义:该序列中没有出现过的最小非负整数。例如:

  • [1,2,1][1, 2, 1]mex\operatorname*{mex}00
  • [3,0,4][3, 0, 4]mex\operatorname*{mex}11
  • [7,1,0,1][7, 1, 0, 1]mex\operatorname*{mex}22

输入格式

第一行,一个正整数 nn,表示序列长度。

第二行,nn 个非负整数 a1,,ana_1, \ldots, a_n

输出格式

输出一行,一个非负整数,表示 kk 的最大可能值。如果不存在满足条件的 kk,输出 00

5
1 0 4 1 0

2

6
1 1 4 5 1 4

0

7
1 9 1 9 8 1 0

1

8
1 3 8 0 0 98 40 138

2

提示

【样例解释 #1】

序列为 a=[1,0,4,1,0]a = [1, 0, 4, 1, 0]

a1,a4,a5a_1, a_4, a_5 划分进第一个子序列,a2,a3a_2, a_3 划分进第二个子序列,此时:

  • 第一个子序列为 [1,1,0][1, 1, 0]mex\operatorname*{mex}22
  • 第二个子序列为 [0,4][0, 4]mex\operatorname*{mex}11

该划分方案满足条件,且有 k=2k = 2

可以证明不存在划分为更多子序列的方案。

【数据范围】

测试点编号 nn \le 特殊性质
1,21,2 10510^5 A
3,43,4 55
5105\sim 10 10510^5 ^
  • 特殊性质 A:保证序列 aa 不含 00

对于所有数据,保证 1n1051 \le n \le 10^50ai1090 \le a_i \le 10^9