https://www.luogu.com.cn/problem/P1725
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+5;
int n,Max=-1e10,L,R,a[N],dp[N];
deque<int>q;
signed main()
{
cin>>n>>L>>R;
for(int i=0;i<=n;++i) cin>>a[i];
dp[0]=a[0];
for(int i=1;i<=n;++i)
if(i>=L)
{
while(!q.empty()&&dp[i-L]>=dp[q.back()]) q.pop_back();
q.push_back(i-L);
while(q.front()<i-R) q.pop_front();
dp[i]=dp[q.front()]+a[i];
if(i+R>n) Max=max(Max,dp[i]);
}
// for(int i=n-R+1;i<=n;++i) Max=max(Max,dp[i]);
cout<<Max;
return 0;
}