#include <iostream>
#include <algorithm>
#include <vector>
int main(){
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(0);
    int n;
    std::cin>>n;
    int t[n], cnt[n+1];
    for (int i=1; i<=n; ++i) cnt[i]=0;
    for (size_t i=0; i<n; ++i){
        std::cin>>t[i];
        ++cnt[t[i]];
    }
    std::vector<int> s;
    for (size_t i=1; i<=n; ++i)s.push_back(cnt[i]);
    std::sort(s.begin(),s.end());
    int i=0, j=s.size()-1, res=0;
    while (true){
        int ile=s[j];
        while (s[i]<ile){
            ile-=s[i];
            ++i;
        }
        s[i]-=(ile-1);
        if (i==j){
            std::cout<<res+1<<'\n';
            return 0;
        }
        --j;
        ++res;
    }
}
        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  | #include <iostream> #include <algorithm> #include <vector> int main(){ std::ios_base::sync_with_stdio(false); std::cin.tie(0); int n; std::cin>>n; int t[n], cnt[n+1]; for (int i=1; i<=n; ++i) cnt[i]=0; for (size_t i=0; i<n; ++i){ std::cin>>t[i]; ++cnt[t[i]]; } std::vector<int> s; for (size_t i=1; i<=n; ++i)s.push_back(cnt[i]); std::sort(s.begin(),s.end()); int i=0, j=s.size()-1, res=0; while (true){ int ile=s[j]; while (s[i]<ile){ ile-=s[i]; ++i; } s[i]-=(ile-1); if (i==j){ std::cout<<res+1<<'\n'; return 0; } --j; ++res; } }  | 
            
        
                    English