只过了一个点,10分,,,
查看原帖
只过了一个点,10分,,,
853953
ljx_gkx楼主2023/4/4 14:24
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
typedef long long LL;
LL h[N];    //每颗树的高度:
LL n, m;

LL sum (int H)
{
    LL res=0;
    for (int i=1; i <= n; i ++)
        if (h[i] > H)
            res += h[i] - H;
    
    return res;
}

int main()
{
    cin >> n >> m;

    for (int i=1; i <= n; i ++)
        cin >> h[i];
    
    sort (h+1, h+1+n);  //从小到大排序!
    LL l = 1, r = 1e6;
    while (l < r)
    {
        LL mid = l + r >> 1;
        if (sum(mid) <= m) r = mid;
        else l = mid + 1;
    }
    cout << r << endl;
    return 0;
}
2023/4/4 14:24
加载中...