题目:
题解:
二分晒干时间
数组开小,wa了一次。。。。。
代码:
#include<iostream>
#include<cstdio>
using namespace std;
const int N=500000+5000;
int l=-1,r=0;
int n,c[N],a,b;
bool check(int x){
int tmp=x;
for(int i=1;i<=n;i++){
int ned=c[i];
while(ned>x*a) ned-=b,tmp-=1;
if(tmp<0) return false;
}
return true;
}
int main(){
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;i++){
scanf("%d",&c[i]);
r=max(r,c[i]);
}
r+=50;
while(r-l>1){
int mid=r+l>>1;
if(check(mid)) r=mid;
else l=mid;
}
printf("%d",r);
return 0;
}