#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int a_i[500000];
int sort_lenght[500000];
int main(){
long n;
cin >> n;
long number_elem=n, output=1;
for(long i=0;i<n;i++){
cin>>a_i[i];
}
sort(&a_i[0],&a_i[n], greater<int>());
int element_to_comper=a_i[0];
int ile_w_sort=0;
for(long i=0;i<n;i++){
if (a_i[i]<element_to_comper) {
element_to_comper = a_i[i];
ile_w_sort++;
}
sort_lenght[ile_w_sort]++;
}
sort(&sort_lenght[0],&sort_lenght[ile_w_sort+1], greater<int>());
for(long i=0;i<ile_w_sort+1;i++){
// cout<<sort_lenght[i] <<" " ;
}
//cout << endl;
for(long i=0;i<ile_w_sort+1;i++){
number_elem-= 2*sort_lenght[i] -1;
if(number_elem <=0) {
cout << output<< endl;
return 0;
}
output++;
}
for(long i=0;i<n;i++){
// cout<<a_i[i] <<" " ;
}
return 0;
}
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 | #include <iostream> #include <cmath> #include <algorithm> using namespace std; int a_i[500000]; int sort_lenght[500000]; int main(){ long n; cin >> n; long number_elem=n, output=1; for(long i=0;i<n;i++){ cin>>a_i[i]; } sort(&a_i[0],&a_i[n], greater<int>()); int element_to_comper=a_i[0]; int ile_w_sort=0; for(long i=0;i<n;i++){ if (a_i[i]<element_to_comper) { element_to_comper = a_i[i]; ile_w_sort++; } sort_lenght[ile_w_sort]++; } sort(&sort_lenght[0],&sort_lenght[ile_w_sort+1], greater<int>()); for(long i=0;i<ile_w_sort+1;i++){ // cout<<sort_lenght[i] <<" " ; } //cout << endl; for(long i=0;i<ile_w_sort+1;i++){ number_elem-= 2*sort_lenght[i] -1; if(number_elem <=0) { cout << output<< endl; return 0; } output++; } for(long i=0;i<n;i++){ // cout<<a_i[i] <<" " ; } return 0; } |
English