救救我大佬们
查看原帖
救救我大佬们
181732
yanyu楼主2021/10/19 18:51

为啥70,求解

#include<iostream>
#include<cstring>
using namespace std;
int a[2000001],max1=0,min1=2147483647;
void shuru(int n);
int czl(int x,int n);
int js(int x,int n);
int main()
{
    long long n,mu;
    cin>>n>>mu;
    shuru(n);
    ///kp(a,1,n);
    cout<<max1-czl(mu,n);



    return 0;
}
void shuru(int n)
{
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        max1=max(max1,a[i]);
        min1=min(min1,a[i]);
    }
}
///1,2,3,4,4,5,6,7,8
int czl(int x,int n)
{
    int l,r,mid;
    r=min(x,max1);
    l=1;
    mid=(r+l)/2;
    while(l<r)
    {
        if(x<=js(mid,n))
        {
            r=mid;
        }
        else
        {
            l=mid+1;
        }
        mid=(l+r)/2;
    }
    return r;
}
int js(int x,int n)
{
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]>max1-x)
        {
            sum+=a[i]-max1+x;
        }
    }
    return sum;
}
2021/10/19 18:51
加载中...