编程题
### 问题描述 新一是一名非常有才华的侦探,他手中有一个神奇的魔术盒,这个魔术盒的特性是可以放入或取出物品。这个魔术盒有两个口袋,分别是口袋 $A$ 和口袋 $B$。口袋 $A$ 里面已经 $N$ 个物品,而口袋 $B$ 有 $M$ 个物品。每个物品都有其独特的价值,价值可以是正数,也可以是负数。 新一的魔术盒有一个神奇的魔法,魔法的规则是这样的: 1. 选择口袋 $B$ 中的第一个或者最后一个物品。 2. 将选择的物品插入到口袋 $A$ 的前面或者后面。 3. 从口袋 $B$ 中删除已经被选择的物品。 新一的目标是通过精确地进行 $M$ 次操作后,使得口袋 $A$ 中任何一部分物品的总价值最大。 注意:口袋 $A$ 中的一部分物品是指从口袋 $A$ 的开始或者结束删除一些(或者不删除)物品后得到的结果。这一部分物品可能为空。 请你帮助新一计算出最高的可能价值。 ### 输入格式 第一行包括一个整数 $N$,表示口袋 $A$ 中的物品数量。 第二行包括 $N$ 个空格分隔的整数,表示口袋 $A$ 中每个物品的价值 $A_i$。 第三行包括一个整数 $M$,表示口袋 $B$ 中的物品数量。 第四行包括 $M$ 个空格分隔的整数,表示口袋 $B$ 中每个物品的价值 $B_i$。 数据范围保证:$1 \leq N,M \leq 10^5$,$-10^8 \leq A_i,B_i \leq 10^8$。 ### 输出格式 输出一行,表示通过精确地进行 $M$ 次操作后,口袋 $A$ 中任何一部分物品的最大可能总价值。 ### 样例输入 ```markdown 5 3 26 -79 72 23 2 66 44 ``` ### 样例输出 ```markdown 205 81 24 ``` ### 说明 对于样例,我们可以经过以下操作得到最大价值: - 操作 1:将口袋 $B$ 中的第一个物品添加到口袋 $A$ 的后面。这时,口袋 $A = [3, 26, -79, 72, 23, 66]$,口袋 $B = [44]$。 - 操作 2:将口袋 $B$ 中的第一个物品添加到口袋 $A$ 的后面。这时,口袋 $A = [3, 26, -79, 72, 23, 66, 44]$,口袋 $B = []$。 - 此时,口袋 $A$ 中价值最高的一部分物品是 $[72, 23, 66, 44]$,总价值为 $205$。
查看答案
赣ICP备20007335号-2