Processing math: 100%
编程题
                ### 问题描述

在小学二年级的数学课上, Yaya 学会了加减法。出于对学到新知识的兴奋,她迫不及待地想要 Clrlss 考一考她。

于是,Clrlss 给了 Yaya 一个序列。这个序列一共有 n 个整数,分别为 a1,a2,...,an 。 除此之外, Clrlss 还给了 Yaya A 个加号和 B 个减号。Clrlss 问:在这些加号和减号中选出 n1 个,填到序列中,会形成一个数学表达式。那么,这个表达式的最大值是多少?

具体而言,对于表达式 (a1)op1(a2)op2(a3)...opn1(an) ,Yaya 需要在 op1opn1n1 个位置上填入加号或者减号,加号总数不超过A,减号总数不超过B,且让表达式的值最大。

亲爱的见证者啊,这种题目对您来说肯定不在话下。至于 Yaya, 让我们祝她算得出来。

输入格式

第一行输入三个整数 n,A,B1A,Bn105,A+Bn1),分别表示序列的长度、加号的数量和减号的数量。

第二行输入 n 个整数 a1,a2,...,an , 表示给定的序列 (109ai109)。

输出格式

输出一个整数,表示可以形成的表达式的最大值。

样例输入

5 4 2
1 -3 -5 -4 1

样例输出

8

说明

对于样例,我们有 4 个加号,2 个减号。取到最大值 8 时,表达式可以为 1+(3)(5)(4)+1

查看答案
赣ICP备20007335号-2