蒟蒻code,大神勿喷......
#include<iostream>
//#include<cmath>
//#include<string>
//#include<cstring>
//#include<cstdio>
//#include<algorithm>
#include<deque>
using namespace std;
int sum[500005];
int main(void)
{
deque<int> d;
int n,m,ans = 0;
cin >> n >> m;
for(int i = 1;i <= n;i++)
{
int p;
scanf("%d",&p);
sum[i] = sum[i-1]+p;
}
for(int i = 1;i <= n;i++)
{
while(!d.empty() && sum[d.back()] > sum[i]) d.pop_back();
d.push_back(i);
while(!d.empty() && d.front() < i-m) d.pop_front();
ans = max(ans,sum[i]-sum[d.front()]);
}
cout << ans;
return 0;
}