数学考试 两个区间 前缀和

数学考试

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;
}
算法竞赛之路 文章被收录于专栏

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

全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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