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
#include<bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    vector<int>v1(n+1, 0);
    int c;
    for(int i=0; i<n; i++)
    {
        cin>>c;
        v1[c]++;
    }
    vector<int>v;
    for(auto x:v1)
    {
        if(x!=0)
            v.push_back(x);
    }
    sort(v.begin(), v.end());
    int ile=0;
    int a=0, b=v.size()-1;
    while(true)
    {
        ile++;
        int spot=v[b]-1;
        while(a!=b&&spot-v[a]>=0)
            {spot-=v[a]; a++;}
        v[a]-=spot;
        if(a>=b)
            break;
        b--;
    }
    cout<<ile<<endl;
}