#include<iostream>
using namespace std;
long long dp[2][100005],a[100005],ans,pre;
int n,k,p=1;
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=1;i<=n;i++)
{
dp[p][0]=pre;
int m=min(i,k),j;
for(j=1;j+7<=m;j+=8)
{
dp[p][j]=dp[p^1][j-1]+a[i];
pre=max(pre,dp[p][j]);
dp[p][j+1]=dp[p^1][j]+a[i];
pre=max(pre,dp[p][j+1]);
dp[p][j+2]=dp[p^1][j+1]+a[i];
pre=max(pre,dp[p][j+2]);
dp[p][j+3]=dp[p^1][j+2]+a[i];
pre=max(pre,dp[p][j+3]);
dp[p][j+4]=dp[p^1][j+3]+a[i];
pre=max(pre,dp[p][j+4]);
dp[p][j+5]=dp[p^1][j+4]+a[i];
pre=max(pre,dp[p][j+5]);
dp[p][j+6]=dp[p^1][j+5]+a[i];
pre=max(pre,dp[p][j+6]);
dp[p][j+7]=dp[p^1][j+6]+a[i];
pre=max(pre,dp[p][j+7]);
}
while(m-j+1)
{
dp[p][j]=dp[p^1][j-1]+a[i];
pre=max(pre,dp[p][j]);
j++;
}
p^=1;
}
printf("%lld",pre);
return 0;
}
这份代码可以直接草飞