数学考试 两个区间 前缀和

数学考试

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

使用游标的左边和游标的右边,用两个变量记录,成功配合前缀和完成对区间的分离。

#include <bits/stdc++.h>
using namespace std;
long long a[200001];
int main() {
    int T, n, k;
    cin >> T;
    while (T--) {
        cin >> n >> k;
        for (int i = 1; i <= n; i++) cin >> a[i], a[i] += a[i - 1];
        long long maxx = -1e18, ans = -1e18;
        for (int i = k; i + k <= n; i++) {
            maxx = max(maxx, a[i] - a[i - k]);
            ans = max(ans, maxx + a[i + k] - a[i]);
        }
        cout << ans << endl;
    }
    return 0;
}
算法竞赛之路 文章被收录于专栏

整理、记录算法竞赛的好题

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:13
这是聊岔撇了吗,相同的话问了两遍
吴offer选手:上下文切换这一块
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
球球别拷打俺了:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务