yzyhaoshui @ 2024-02-25 16:09:04
#include<bits/stdc++.h>
using namespace std;
int n,l,r,a[200010],z,q[200010],f[200010];
int main(){
cin>>n>>l>>r;
for(int i=0;i<=n;i++){
cin>>a[i];
}
f[0]=0;
int h=1, t=0; int ans=-2e9;
for(int i=l;i<=n;i++){
while(h<=t && f[q[t]]<=f[i-l]) t--;
q[++t]=i-l;
if(q[h]<i-r) h++;
f[i]=f[q[h]]+a[i];
if(i>n-r) ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}
最后的点没过,请帮忙吧大佬