求指导
查看原帖
求指导
1327843
如履薄冰楼主2024/9/21 19:39
#include<bits/stdc++.h>
using namespace std;
long long  A[1100000],n,m,x=1,y=-1e9,mid,ans;
bool check(){
    long long suml=0;
    for(long long i=1;i<=n;i++){
        if(A[i]>=mid){
            suml+=A[i]-mid;
        }
    }
    return suml>m;
}
int main(){
    cin>>n>>m;
    for(long long i=1;i<=n;i++){
        cin>>A[i];
        y=max(y,A[i]);
    }
    while(x<=y){
        mid=(x+y)/2;
        if(check()){
            x=mid+1;
            ans=mid;
        }else{
            y=mid-1;
        }
    }
    cout<<ans;
    return 0;
}
2024/9/21 19:39
加载中...