http://ybt.ssoier.cn:8088/problem_show.php?pid=1598
wa了12和20。
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 10;
int n, m, a[N], ans, s[N];
deque<int> q;
void solve()
{
cin >> n >> m;
for (int i = 1; i <= n; i ++ )
{
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
ans = LLONG_MIN;
for (int i = 1; i <= n; i ++ )
{
while (!q.empty() && i - m > q.front()) q.pop_front();
if (!q.empty()) ans = max(ans, s[i] - s[q.front()]);
while (!q.empty() && s[q.back()] > s[i]) q.pop_back();
q.push_back(i);
}
cout << ans;
return ;
}
signed main()
{
freopen("sum12.in", "r", stdin);
solve();
return 0;
}