### 问题描述
在小学二年级的数学课上, Yaya 学会了加减法。出于对学到新知识的兴奋,她迫不及待地想要 Clrlss 考一考她。
于是,Clrlss 给了 Yaya 一个序列。这个序列一共有 n 个整数,分别为 a1,a2,...,an 。 除此之外, Clrlss 还给了 Yaya A 个加号和 B 个减号。Clrlss 问:在这些加号和减号中选出 n−1 个,填到序列中,会形成一个数学表达式。那么,这个表达式的最大值是多少?
具体而言,对于表达式 (a1)op1(a2)op2(a3)...opn−1(an) ,Yaya 需要在 op1 到 opn−1 这 n−1 个位置上填入加号或者减号,加号总数不超过A,减号总数不超过B,且让表达式的值最大。
亲爱的见证者啊,这种题目对您来说肯定不在话下。至于 Yaya, 让我们祝她算得出来。
第一行输入三个整数 n,A,B (1≤A,B≤n≤105,A+B≥n−1),分别表示序列的长度、加号的数量和减号的数量。
第二行输入 n 个整数 a1,a2,...,an , 表示给定的序列 (−109≤ai≤109)。
输出一个整数,表示可以形成的表达式的最大值。
5 4 2
1 -3 -5 -4 1
8
对于样例,我们有 4 个加号,2 个减号。取到最大值 8 时,表达式可以为 1+(−3)−(−5)−(−4)+1 。