#include <bits/stdc++.h>
using namespace std;
const int N = 500*1000;
int n,a,suma;
int T[N+7];
int pref[N+7];
bool czy(int x, int y){
if(x>y) return true;
return false;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
T[a]++;
}
sort(T+1,T+N+5,czy);
/*
for(int i=0;i<n+5;i++){
cout<<T[i]<<" ";
}
*/
pref[0]=0;
for(int i=1;i<N+5;i++){
pref[i] = pref[i-1] + T[i];
}
/*
for(int i=0;i<n+5;i++){
cout<<pref[i]<<" ";
}
cout<<endl;
*/
for(int i=1;i<N+7;i++){
suma += T[i];
suma -= 1;
if(suma >= pref[N+3]-pref[i]){
cout<<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 51 52 | #include <bits/stdc++.h> using namespace std; const int N = 500*1000; int n,a,suma; int T[N+7]; int pref[N+7]; bool czy(int x, int y){ if(x>y) return true; return false; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(int i=0;i<n;i++){ cin>>a; T[a]++; } sort(T+1,T+N+5,czy); /* for(int i=0;i<n+5;i++){ cout<<T[i]<<" "; } */ pref[0]=0; for(int i=1;i<N+5;i++){ pref[i] = pref[i-1] + T[i]; } /* for(int i=0;i<n+5;i++){ cout<<pref[i]<<" "; } cout<<endl; */ for(int i=1;i<N+7;i++){ suma += T[i]; suma -= 1; if(suma >= pref[N+3]-pref[i]){ cout<<i; return 0; } } } |
English