8.26

· · 个人记录

P1843 奶牛晒衣服

思路:通过二分来判断够不够用

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=5e5+5;
int a,b,n,w[N];
bool check(int x){//判断够不够用
    int sum=0;
    for(int i=1;i<=n;i++){
        if(w[i]>a*x)sum+=ceil((w[i]-a*x)*1.0/b);//判断时间够不够自然风干
    }
    return sum<=x;
}
signed main(){
    //
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++){
        cin>>w[i];
    }
    int l=0,r=n+1;
    while(l+1<r){//二分
        int mid=(l+r)/2;
        if(check(mid)){
            r=mid;
        }
        else l=mid;
    }
    cout<<r;
    return 0;
}