这份代码:
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,a,b,w[500010],tmpw[500010],l,r,mid;
bool cmp(ll a,ll b)
{
return a>b;
}
bool check(ll x)
{
memcpy(tmpw,w,sizeof(w));
for (ll i=1;i<=n;i++)
{
tmpw[i]-=a*x;
}
sort(tmpw+1,tmpw+n+1,cmp);
ll t=0;
for (ll i=1;i<=n;i++)
{
if (tmpw[i]>0)
{
t+=(tmpw[i]+b-1)/b;
}
}
return t<=x;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>a>>b;
for (ll i=1;i<=n;i++)
{
cin>>w[i];
}
l=1,r=n+1;
while (l+1<r)
{
mid=(l+r)>>1;
if (check(mid))
{
r=mid;
}
else
{
l=mid;
}
}
cout<<r;
return 0;
}
AC 了本题。但是它连样例都过不了。。
input:
3 2 1
1
2
3
output:
1
my answer:
2
请求添加 hack 数据。