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
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5e5+7;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    // freopen("input.in", "r", stdin);
    int n,a;
    cin>>n; 
    vector<int> v(n+1);
    for(int i=0; i<n; i++){
        cin>>a;
        v[a]++;
    }
    sort(v.begin(),v.end());
    int p=0; int k=v.size()-1;
    int l;
    int wyn=0;
    while(p<k){
        l=v[k];
        int s=0;
        while(s<l and p<k){
            s+=v[p];
            if (s>=l){
                v[p]=s-(l-1);
            }
            else {
                v[p]=0;
                p++;
            }
        }
        k--;
        wyn++;
    }
    if (v[k]>0) wyn++;
    cout<<wyn;
}