1 条题解

  • 1
    @ 2026-1-5 17:56:17
    #include<bits/stdc++.h>
    using namespace std;
    long long n,m,s;
    long long a[1000010];
    long long pan(long long h){
        long long tot=0;
        for(int i=1;i<=n;i++)
            if(a[i]>=h)
                tot+=a[i]-h;
        if(tot>=m)
            return 1;
        else
            return 0;
    }
    int main(){
        long long l=0,r=400000;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        while(l<=r){
            int mid=(l+r)/2;
            if(pan(mid)){
                l=mid+1;
                s=mid;
            }
            else
                r=mid-1;
        }
        cout<<s;
        return 0;
    }
    

    信息

    ID
    839
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    1
    已通过
    1
    上传者