P1843 奶牛晒衣服

#include<bits/stdc++.h>
using namespace std;
int n,k,a,b,ans;
int f[10000000];
inline bool pd(int x)
{
int k=0;
for(int i=1;i<=n;i++)
{
if(f[i]<=x*a)continue;
int ret=f[i]-x*a;
k+=(ret+(b-1))/b;
}
if(k<=x)return true;
return false;
}
bool cmp(int aa,int bb)
{
return aa>bb;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
scanf("%d",&f[i]);
}
sort(f+1,f+n+1,cmp);
int xx=1,yy=10000000;
while(xx<=yy)
{
int mid=(xx+yy)/2;
if(pd(mid))
{
yy=mid-1;
ans=mid;
}
else xx=mid+1;
}
cout<<ans;
return 0;
}

原文地址:https://www.cnblogs.com/647Z/p/7325403.html