AT_arc087_a.[ABC082C] Good Sequence

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的正整数序列 a=(a1,a2,…,aN)a = (a_1, a_2, \ldots, 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 变为好数列,最少需要删除的元素个数。

输入格式

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

NN a1a_1 a2a_2 ...... aNa_N

输出格式

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

输入输出样例

  • 输入#1

    4
    3 3 3 3

    输出#1

    1
  • 输入#2

    5
    2 4 1 4 2

    输出#2

    2
  • 输入#3

    6
    1 2 2 3 3 3

    输出#3

    0
  • 输入#4

    1
    1000000000

    输出#4

    1
  • 输入#5

    8
    2 7 1 8 2 8 1 8

    输出#5

    5

说明/提示

限制

  • 1≤N≤1051 \leq N \leq 10^5
  • aia_i 为整数。
  • 1≤ai≤1091 \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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页