#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<cstdlib>
#define ll long long
#define inf 99999999999999LL
using namespace std;
int n,m,q[100002];
ll a[100002],sum,f[100002],mins=inf;
void dp()
{
int t=0,w=0;
for(int i=1;i<=n;i++)
{f[i]=a[i]+f[q[t]];
while(f[q[w]]>f[i]&&t<=w) w--;
q[++w]=i;
while(q[t]<i-m) t++;
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{scanf("%lld",&a[i]); sum+=a[i];}
dp();
for(int i=n-m;i<=n;i++) mins=min(mins,f[i]);
printf("%lld",sum-mins);
return 0;
}
2442: [Usaco2011 Open]修剪草坪
最新推荐文章于 2019-02-16 20:50:23 发布