#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 5e5 + 1, M = 20;
int n, m, a[N], s[N], f[N][M];
int RMQ(int l, int r) {
int p = log2(r - l + 1);
return min(f[l][p], f[r - (1 << p) + 1][p]);
}
int main() {
cin >> n >> m;
fill(f[0], f[n + 1], 1145141919);
for (int i = 1; i <= n; i++) cin >> a[i], s[i] = s[i - 1] + a[i], f[i][0] = s[i];
for (int j = 1; j < M; j++) {
for (int i = 1; i + (1 << j) - 1 <= n; i++) {
f[i][j] = min(f[i][j - 1], f[i + (1 << j - 1)][j - 1]);
}
}
int ans = 0;
for (int r = 1; r <= n; r++) {
int l = max(0, r - m + 1);
// cout << l << ' ' << r << " : " << RMQ(l, r) << '\n';
ans = max(ans, s[r] - RMQ(l - 1, r));
}
cout << ans;
return 0;
}
从第六个点开始WA,下载数据后在本地跑了答案是对的,但交上去WA了