题目描述
给定一个包含 n 个自然数的序列 x1,x2,…,xn。
现在要对序列中的每个数 xi 赋予一个正号 (+xi) 或负号 (−xi),然后求和。
特别的,在 n 个数中,必须恰好有 k 个数使用正号,其余 n−k 个数使用负号。
求这种操作下,得到的最大总和是多少。
输入格式
从文件 opt.in 中读入数据。
第一行包含两个整数 n 和 k,分别表示序列的长度和必须选择加号的次数。
第二行包含 n 个自然数 x1,x2,…,xn,表示给定的序列,保证 x1≥x2≥⋯≥xn。
输出格式
输出到文件 opt.out 中。
一行,包含一个整数,表示能够得到的最大总和。
样例
3 2
5 2 1
6
数据范围
- 对于 20% 的数据,1≤n≤10。
- 对于另外 10% 的数据,n=k。
- 对于另外 10% 的数据,每个 xi 相等。
- 对于 100% 的数据,1≤k≤n≤105,0≤xi≤109。