#include <bits/stdc++.h>
using namespace std;
int main(){
int n=(cin>>n,n);
vector<int> tab(n+1,0);
for(int i=0,a;i<n;i++)
tab[(cin>>a,a)]++;
sort(tab.begin(), tab.end());
int L=0, R=tab.size()-1;
int res=0;
while(L<=R){
//cout <<L<<" "<<R<<endl;
res++;
int sum=tab[R--]-1;
while(L<=R && sum >= tab[L]) sum -= tab[L++];
tab[L] -= sum;
}
cout << res <<endl;
}
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 | #include <bits/stdc++.h> using namespace std; int main(){ int n=(cin>>n,n); vector<int> tab(n+1,0); for(int i=0,a;i<n;i++) tab[(cin>>a,a)]++; sort(tab.begin(), tab.end()); int L=0, R=tab.size()-1; int res=0; while(L<=R){ //cout <<L<<" "<<R<<endl; res++; int sum=tab[R--]-1; while(L<=R && sum >= tab[L]) sum -= tab[L++]; tab[L] -= sum; } cout << res <<endl; } |
English