题解 | #加减#

加减

https://ac.nowcoder.com/acm/problem/224938

思路

贪心 + 前缀和优化 + 滑动窗口优化

过程

alt alt alt

代码

#include <iostream>
#include <algorithm>

using namespace std;

typedef long long LL;

const int N = 1e5 + 10;
LL n, a[N], k, sum[N];

LL cal(LL l, LL r)
{
    int mid = l + r >> 1;
    LL cost = (mid - l - r + mid) * a[mid] - (sum[mid - 1] - sum[l - 1]) + sum[r] - sum[mid];
    return cost;
}

int main()
{
    cin >> n >> k;
    for(int i = 1;i <= n;i ++) cin >> a[i];
    sort(a + 1, a + n + 1);
    for(int i = 1;i <= n;i ++) sum[i] = sum[i - 1] + a[i];
    LL l = 1, r = 1, ans = 1;
    while(r < n + 1)
    {
        while(cal(l, r) > k) l ++;
        ans = max(ans, r - l + 1);
        r ++;
    }
    cout << ans << endl;
    return 0;
}
全部评论

相关推荐

好消息是活的像个人了,周末可以约会吃饭打游戏了坏消息是钱没了,当初来小红书就是为了钱啊哭笑不得😭
犯困嫌疑人:好事儿啊,取消大小周能有更多自己的时间,周末还能约对象玩,这不美滋滋?
投递小红书等公司10个岗位 > 小红书取消大小周
点赞 评论 收藏
分享
永远年轻_永远热泪盈眶:咱们真是苦难哥俩,我是浙大宁理,你是浙大城院,测试学历卡得不严,之前携程实习,只能说确实wlb,但携程学历厂,当时我mentor面试官,给我们看了他面试的六个人,全是研究生,学历最烂的一个都是杭电研究生,复旦华科一堆
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务