#ATarc087a. [ABC082C] Good Sequence

[ABC082C] Good Sequence

题目描述

给定一个长度为 NN 的正整数序列 a=(a1,a2,,aN)a = (a_1, a_2, \ldots, a_N)。你的目标是从 aa 中删除若干元素,使 aa 变为好数列

这里,一个数列 bb 被称为好数列,当且仅当其满足以下条件:

  • 对于 bb 的每个元素 xxbb 中恰好包含 xx 个值为 xx 的元素。

例如,(3,3,3)(3, 3, 3)(4,2,4,1,4,2,4)(4, 2, 4, 1, 4, 2, 4)()()(空数列)是好数列。而 (3,3,3,3)(3, 3, 3, 3)(2,4,1,4,2)(2, 4, 1, 4, 2) 不是好数列。

请计算,为了将 aa 变为好数列,最少需要删除的元素个数。

输入格式

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

NN a1a_1 a2a_2 ...... aNa_N

输出格式

输出将 aa 变为好数列所需删除的元素最小个数。

样例 1

输入

4
3 3 3 3

输出

1

样例 2

输入

5
2 4 1 4 2

输出

2

样例 3

输入

6
1 2 2 3 3 3

输出

0

样例 4

输入

1
1000000000

输出

1

样例 5

输入

8
2 7 1 8 2 8 1 8

输出

5

说明/提示

限制

  • 1N1051 \leq N \leq 10^5
  • aia_i 为整数。
  • 1ai1091 \leq a_i \leq 10^9

样例解释 1

例如,将一个 33 删除 11 个后,(3,3,3)(3, 3, 3) 就变为好数列。

样例解释 2

例如,将 44 删除 22 个后,(2,1,2)(2, 1, 2) 就变为好数列。

样例解释 4

10910^9 删除 11 个后,()()(空数列)就是好数列。

由 ChatGPT 5 翻译