fork download
  1. #include<bits/stdc++.h>
  2. #pragma GCC optimize("O3,unroll-loops")
  3. #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
  4. using namespace std;
  5.  
  6. #define ll long long
  7. #define vll vector<ll>
  8. #define all(x) x.begin(),x.end()
  9. #define fo(i,a,b) for(ll i=a;i<=b;++i)
  10. #define fast ios::sync_with_stdio(0);cin.tie(0);
  11.  
  12. const ll INF=1e18,MOD=1e9+7;
  13.  
  14. ll n,k,m;
  15.  
  16. void input(){
  17. cin>>n>>m>>k;
  18. vll a(n);
  19. fo(i,0,n-1)cin>>a[i];
  20. sort(all(a));
  21. vll pre(n+1,0);
  22. fo(i,0,n-1)pre[i+1]=pre[i]+a[i];
  23.  
  24. auto mua=[&](ll r)->bool{
  25. ll x=min(r,k);
  26. ll gia=pre[r-x]+(pre[r]-pre[r-x])/2;
  27. return gia<=m;
  28. };
  29.  
  30. ll trai=0,phai=n,ans=0;
  31. while(trai<=phai){
  32. ll mid=(trai+phai)/2;
  33. if(mua(mid))ans=mid,trai=mid+1;
  34. else phai=mid-1;
  35. }
  36. cout<<ans;
  37. }
  38.  
  39. int main(){
  40. fast
  41. input();
  42. }
  43.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty