#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int, int>


void solve() {
    int n, k;
    cin >> n >> k;

    vector<ll> sum(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> sum[i];
        sum[i] += sum[i - 1];
    }

    const ll inf = 1e18;
    vector<ll> dp(n + 2, -inf);
    dp[0] = 0;

    deque<int> q; q.push_back(0);
    for (int i = 1; i <= n + 1; i++) {
        dp[i] = dp[i - 1];
        while (q.size() && i - 1 - q.front() > k) q.pop_front();
        assert(q.size());
        dp[i] = max(dp[i], dp[q[0]] - sum[q[0]] + sum[i - 1]);
        while (q.size() && dp[i] - sum[i] >= dp[q.back()] - sum[q.back()]) q.pop_back();
        q.push_back(i);
    }
    cout << dp[n + 1] << '\n';
}
signed main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int t = 1;
    // cin >> t;
    while (t--) solve();
    return 0;
}
/*
g++ -std=c++17 1.cpp -o 1 && 1 < in.txt > out.txt
g++ -std=c++17 1.cpp -o 1 && ./1 < in.txt > out.txt
200:5488
150:6224
80 :6772
40 :7218

300 5649
250:5514
*/

0 条评论

目前还没有评论...

信息

ID
569
时间
ms
内存
MiB
难度
6
标签
递交数
26
已通过
10
上传者