#B4514. [四川青少年 C++ 算法设计大赛 2025] 金苹果岛

    ID: 18241 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划 DP贪心四川2025前缀和循环结构科创活动小学活动

[四川青少年 C++ 算法设计大赛 2025] 金苹果岛

题目描述

代码勇者来到了金苹果岛上,金苹果岛上有两种苹果:随处可见的红苹果与稀有美味的金苹果。

勇者的初始代码能力为 1 1 ,他每吃下一个红苹果,代码能力就会得到一定程度的提升(每个红苹果带来的提升可能是不同的,甚至也可能是负的);他每吃下一个金苹果,代码能力就会直接翻倍(每个金苹果的效果都是完全相同的)。

岛上的苹果仙子用 n n 个红苹果和 m m 个金苹果招待了勇者,勇者必须吃光所有苹果。勇者必须按照仙子规定的顺序吃红苹果,但是他可以自由安排什么时候吃金苹果(可以在吃任意一个红苹果之前或之后吃若干个金苹果)。

求勇者在离开金苹果岛的时候的代码能力的最大值。

输入格式

第一行输入两个正整数 n n n105 n \leq 10^5 )和 m m m20 m \leq 20 )。

第二行输入 n n 个正整数 ai a_i ai10 |a_i| \leq 10 )。

输出格式

输出一个整数,表示勇者在离开金苹果岛的时候的代码能力的最大值。

6 2
1 -2 3 1 -6 5
15
8 3
5 -3 -8 2 4 -11 9 1
42

提示

【样例 1 解释】

勇者吃掉红苹果 1,2,3,1 1, -2, 3, 1 ,代码能力变为 4 4

勇者吃掉 2 2 颗金苹果,代码能力变为 16 16

勇者吃掉红苹果 6,5 -6, 5 ,代码能力变为 15 15

这是勇者的最优方案。

【子任务】

::cute-table{tuack}

测试点编号 m m ai a_i 非负
11 =0 = 0
22 ^
33 =1 = 1
44 ^
55 =5 = 5
66 ^
77 =10 = 10
88 ^
99 =20 = 20
1010 ^

对于 100% 100\% 的数据,n105 n \leq 10^5 m20 m \leq 20 ai10 |a_i| \leq 10