老师九五!
2024-10-02 16:04:27
发布于:广东
#include<bits/stdc++.h>
using namespace std;
long long a[100005],n,k,l;
bool pd(long long x){
long long num=0;
for(int i=n-x+1;i<=n;i++){
if(a[i]>=x) continue;
int rest=x-a[i];
if(num>k)
return false;
num+=rest;
}
return num<=1ll*k*l;
}
signed main() {
cin>>n>>k>>l;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
long long L=0,R=n,mid,ans=0;
while(L<=R)
{
mid=(L+R)/2;
if(pd(mid)){
L=mid+1;
ans=max(ans,mid);
}
else
R=mid-1;
}
cout<<ans<<" ";
return 0;
}
这里空空如也
有帮助,赞一个