50分求调
查看原帖
50分求调
1233392
RY111楼主2024/6/9 11:15
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int  a[N],n,m;
bool check(int mid)
{long long sum=0;

    for(int i=0;i<n;i++)
    {
        if(a[i]>mid)
            sum+=a[i]-mid;

    }
    if(sum>=m)return true;
    else return false;
}
int bs(int a[],int l,int r)
{
    while(l<r)
    {int mid=l+r+1>>1;
        if(check(mid)) l=mid;
        else r=mid-1;

    }
return l;
}

int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];

    }

cout<<bs(a,0,1e6);

    return 0;
}

2024/6/9 11:15
加载中...