1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <bits/stdc++.h>
using namespace std;
const int maxn = 500009;
int zlicz[maxn];
bool vis[maxn];
int a[maxn];
vector <pair<int,int>> v;
vector <int> v2;

bool raaaar(pair<int,int> p1, pair<int,int> p2)
{
    if(p1.first > p2.first)return true;
    return false;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    int n;
    cin >> n;
    for(int  i = 0 ;i < n ; i++)
    {
        cin >> a[i];
        zlicz[a[i]]++;
    }

    for(int i = 0 ; i < maxn ; i++)
    {
        if(zlicz[i] > 0)
        {
            v.push_back({zlicz[i],i});
        }
    }

    sort(v.begin() , v.end() , raaaar);
    for(int i = 0;  i < v.size() ; i++)
    {
        for(int j = 0 ; j < v[i].first ; j++)v2.push_back(v[i].second);
    }
    int j = n-1;
    int wyn = 0;
    for(int i = 0 ; i < n ; i++)
    {
        if(i > j)break;
        if(vis[v2[i]] == 0)
        {
            vis[v2[i]] = 1;
            wyn ++;
            continue;
        }

        j--;
    }

    cout << wyn << '\n';


    return 0;
}