11分求调qaq
查看原帖
11分求调qaq
648623
hema5177楼主2024/7/7 10:53

只有第一个点AC,其他全WA了qaq

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
long long n,a,b,h[500001],sum;
bool check(long long mid,long long c[])
{
    for(int i=1;i<=n;i++) c[i]-=mid*a;
    long long mid1=mid;
    for(int i=n;i>=1;i--)
    {
        long long c1;
        if(c[i]>0)
        {
            if(c[i]%b!=0) c1=floor(c[i]/b)+1;
            else c1=c[i]/b;
            if(c1<=mid1) mid1-=c1;
            else return 0;
        }
        else break;
    }
    return 1;
}
int main()
{
    cin>>n>>a>>b;
    for(int i=1;i<=n;i++) cin>>h[i];
    sort(h+1,h+n+1);
    if(h[n]%a!=0) sum=h[n]/a+1;
    else sum=h[n]/a;
    //cout<<sum;
    long long l=0,r=sum;
    while(l<r)
    {
        long long mid=(l+r)/2;
        if(check(mid,h)) r=mid;
        else l=mid+1;
    }
    cout<<l;
}
2024/7/7 10:53
加载中...