test

test

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

const int N = 1e5 + 10;

int n, k, ans = -1e18;
int a[N], s[N], f[N], q[N];

signed main() {

	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n >> k;
	for (int i = 1; i <= n; i++)
		cin >> a[i], s[i] = s[i - 1] + a[i];

	int h = 0, t = 1;
	for (int i = 1; i <= n; i++) {
		while (h <= t && f[q[t] - 1] - s[q[t]] <= f[i - 1] - s[i])
			t--;
		q[++t] = i;
		while (h <= t && q[h] < i - k) h++;
		f[i] = f[q[h] - 1] - s[q[h]] + s[i];
	}

	for (int i = n - k + 1; i <= n; i++)
		ans = max(ans, f[i]);
	cout << ans;

	return 0;
}
posted @ 2024-03-28 13:02  afhuds  阅读(9)  评论(1编辑  收藏  举报