atcoder#ARC087A. [ABC082C] Good Sequence

[ABC082C] Good Sequence

配点 : 300300

問題文

長さ NN の正整数の列 a=(a1,a2,...,aN)a = (a_1, a_2, ..., a_N) が与えられます。 あなたの目標は、aa のうちいくつかの要素を取り除き、aa良い数列 にすることです。

ここで、数列 bb良い数列 であるとは、次の条件が成り立つことです。

  • bb の各要素 xx について、bb に値 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 を良い数列にするために取り除くべき要素の個数の最小値を求めてください。

制約

  • 1N1051 \leq N \leq 10^5
  • aia_i は整数である。
  • 1ai1091 \leq a_i \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN

a1a_1 a2a_2 ...... aNa_N

出力

aa を良い数列にするために取り除くべき要素の個数の最小値を出力せよ。

4
3 3 3 3
1

例えば、要素 3311 個取り除くと、(3,3,3)(3, 3, 3) は良い数列になります。

5
2 4 1 4 2
2

例えば、要素 4422 個取り除くと、(2,1,2)(2, 1, 2) は良い数列になります。

6
1 2 2 3 3 3
0
1
1000000000
1

要素 10910^911 個取り除くと、()() は良い数列になります。

8
2 7 1 8 2 8 1 8
5