其实样例都没过(小声
有人帮必关,没人帮我就留这哪天想起来调
最后祝大家除夕快乐/新春快乐
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=4*1e5+20;
int a[N],f[N],b[N];
signed main(){
//cout<<sizeof(s)/1024.0/1024;
int n,l,r,ans=0;
cin>>n>>l>>r;
for(int i=0;i<=n;i++){
cin>>a[i];
//f[i]=a[i];
}
priority_queue<pair<int,int>> q;
for(int i=0;i<l;i++){
q.push({a[i],i});
}
f[0]=a[0];
for(int i=l;i<=r+n;i++){
//cout<<123123<<endl;
if(i<=n) q.push({a[i],i});
pair<int,int> t=q.top();
q.pop();
while(q.size() && b[t.second]){
//cout<<t.first<<' '<<t.second<<endl;
t=q.top();
q.pop();
}
f[i]=t.first+a[i];
q.push({f[i],i});
b[i-l]=1;
/*
for(int j=l;j<=r && i-j>=0;j++){
f[i]=max(f[i],f[i-j]+a[i]);
}
*/
}
/*
for(int i=0;i<=n+r;i++){
cout<<f[i]<<' ';
}
*/
for(int i=n+1;i<=n+r;i++){
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}