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