#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; } } } |