比赛 2025.3.18 评测结果 WWMMMMMMMM
题目名称 琪露诺 最终得分 0
用户昵称 会挽弯弓满月 运行时间 3.226 s
代码语言 C++ 内存使用 154.10 MiB
提交时间 2025-03-18 20:54:06
显示代码纯文本
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
int n,l,r;
int a[N];
ll ans;
string sans;
struct node{
	ll v;
	string s;
}f[N*2];
int main(){
	freopen("iceroad.in","r",stdin);
	freopen("iceroad.out","w",stdout);
	scanf("%d%d%d",&n,&l,&r);
	for(int i=0;i<=n;i++){
		scanf("%d",&a[i]);
		f[i].s=i+'0';
	}
	for(int i=l;i<=n+r-1;i++){
		for(int j=max(0,i-r);j<=i-l;j++){
			if(f[i].v<f[j].v){
				f[i].v=f[j].v;
				f[i].s+=f[j].s;
			}
		}
		f[i].v+=a[i];
	}
	for(int i=n+1;i<=n+l;i++){
		if(ans<f[i].v){
			ans=f[i].v;
			sans=f[i].s;
		}
	}
	printf("%lld\n",ans);
	sans="0"+sans;
	ll len=sans.size();
	for(int i=0;i<len;i++){
		cout<<sans[i]<<" ";
	}
	cout<<"-1";
	return 0;
}