#include<bits/stdc++.h> using namespace std; #define ll long long ll n,num[100100],f[100100],k,q[100100],l=0,r=0; int main() { cin>>n>>k; for(int i=1;i<=n;i++)cin>>num[i],num[i]+=num[i-1]; for(int i=1;i<=n;i++) { while(l<=r&&f[q[r]-1]-num[q[r]]<f[i-1]-num[i])r--; q[++r]=i; while(l<=r&&q[l]<i-k)l++; f[i]=f[q[l]-1]-num[q[l]]+num[i]; } ll ans=-1; for(int i=1;i<=n;i++)ans=max(ans,f[i]); cout<<ans; }
单调队列感觉写的好别扭==