why40分
查看原帖
why40分
757092
bj12z_wangziqian楼主2022/11/12 21:16
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long a[1000000];
int main()
{
    int n,m;
    cin >> n >> m;
    for(int i = 0;i<n;i++)
    {
        cin >> a[i];
    }
    sort(a,a+n-1);
    int low = 0,up = a[n-1],maxx = -1;
    while(low<=up)
    {
        int mid = (low+up)/2;
        int sum = 0;
        for(int i = 0;i<n;i++)
        {
            if(a[i]-mid>0)
            {
                sum += a[i]-mid;
            }
        }
        if(m>sum)
        {
            up = mid-1;
        }
        if(m<=sum)
        {
            low = mid+1;
            maxx = max(maxx,mid);
        }

    }
    cout << maxx << endl;
    return 0;
}
2022/11/12 21:16
加载中...