WA了,但是不知道为什么QwQ
思路和题解大致相同,二分答案
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,h,a,b;
int bl[100010];
inline int read()
{
int x=0,f=1;
char c=getchar();
while(c<'0' || c>'9')
{
if(c=='-') f=-1;
c=getchar();
}
while(c>='0' && c<='9')
{
x=(x<<1)+(x<<3)+(c^'0');
c=getchar();
}
return x*f;
}
bool check(int mid)
{
int tmp=0;
for(int i=1;i<=n;i++)
{
if(bl[i]>b*mid) tmp=tmp+(int)(bl[i]-b*mid+(a-b-1))/(a-b);
if(tmp>mid) return 0;
}
return 1;
}
signed main()
{
n=read();
a=read();
b=read();
int ma=0;
for(int i=1;i<=n;i++)
{
bl[i]=read();
ma=max(ma,bl[i]);
}
int r=(ma+1)/b,l=1;
while(l<r)
{
int mid=(l+r)/2;
if(check(mid)==0) l=mid+1;
else r=mid;
}
printf("%lld",l);
return 0;
}