11 条题解

  • 0
    @ 2026-3-26 20:41:12
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,a[1000005],maxx=-1;
    bool check(int x)
    {
        int sum=0;
        for(int i=1;i<=n;i++)
            a[i]>x?sum+=a[i]-x:sum+=0;
        return (sum>=m?1:0);
    }
    int main()
    {
        ios::sync_with_stdio(0);
        cin.tie(0);
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            maxx=max(a[i],maxx);
        }
        int l=0,r=maxx,ans,mid;
        while(l<=r)
        {
            mid=l+r>>1;
            check(mid)?ans=mid,l=mid+1:r=mid-1;
        }
        printf("%d",ans);
    }
    

    信息

    ID
    1280
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    949
    已通过
    214
    上传者