题目如下:
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int cat1[N],cat2[N];
int l=1,r;
int day,a,b,n,ma,cnt=0;
bool check(int k){
cnt=0;
for(int i=1;i<=n;i++){
cat2[i]=cat1[i];
int x=ceil((1.0*cat2[i]-a*day)/b);
ma=max(0,x);
cnt+=ma;
}
if(cnt<=day) return true;
else return false;
}
int main(){
cin>>n>>a>>b;
r=ceil(1.0*n/a);
for(int i=1;i<=n;i++){
cin>>cat1[i];
}
while(l<r){
day=(l+r)/2;
if(check(day)) r=day;
else l=day+1;
}
cout<<day;
return 0;
}
谢谢巨佬们