WA100分,求助

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;
}

???

已经过了,原因是dp要赋-1e10