#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    if (!(cin >> n)) return 0;
    unordered_set<int> s; // 存不同的元素以统计多样性
    for (int i = 0; i < n; ++i) {
        int x; cin >> x;
        s.insert(x);
    }
    int k = (int)s.size(); // 不同元素个数
    cout << (n - k) << "\n"; // 最多可删除的元素数
    return 0;
}
import sys
def main():
    data = list(map(int, sys.stdin.read().split()))
    if not data:
        return
    n = data[0]
    arr = data[1:1 + n]
    # 用集合统计不同元素个数
    k = len(set(arr))
    # 输出最多可删除的元素数量
    print(n - k)
if __name__ == "__main__":
    main()
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        if (!sc.hasNextInt()) return;
        int n = sc.nextInt();
        Set<Integer> set = new HashSet<>(); // 用集合统计不同元素
        for (int i = 0; i < n; i++) {
            set.add(sc.nextInt());
        }
        int k = set.size(); // 不同元素个数
        System.out.println(n - k); // 最多可删除的元素数量
    }
}
        数组的多样性是指:数组中不同元素的数量。
小红有一个数组,她希望删除一些元素,但数组的多样性不能改变,小红想知道,自己最多可以删除多少个元素?
第一行输入一个正整数 n ,代表数组的大小。
第二行输入 n 个正整数 ai,代表每个元素。
1≤n,ai≤100
输出一个整数。
输入
5
1 2 3 4 5
输出
0
说明
每种元素都只有一个,因此无法删除任何元素。
输入
4
2 1 1 2
输出
2
说明
类型 1 的元素和类型 2 的元素各删除一个,这样每个都留下了一个。