社区讨论

只过了一个点,10分,,,

P1873[COCI 2011/2012 #5] EKO / 砍树参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo2te30j
此快照首次捕获于
2023/10/23 19:28
2 年前
此快照最后确认于
2023/10/23 19:28
2 年前
查看原帖
CPP
#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;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...