Roma works in a company that sells TVs. Now he has to prepare a report for the last year.
Roma has got a list of the company's incomes. The list is a sequence that consists of n integers. The total income of the company is the sum of all integers in sequence. Roma decided to perform exactly k changes of signs of several numbers in the sequence. He can also change the sign of a number one, two or more times.
The operation of changing a number's sign is the operation of multiplying this number by -1.
Help Roma perform the changes so as to make the total income of the company (the sum of numbers in the resulting sequence) maximum. Note that Roma should perform exactly k changes.
Input
The first line contains two integers n and k (1 ≤ n, k ≤ 105), showing, how many numbers are in the sequence and how many swaps are to be made.
The second line contains a non-decreasing sequence, consisting of n integers ai (|ai| ≤ 104).
The numbers in the lines are separated by single spaces. Please note that the given sequence is sorted in non-decreasing order.
Output
In the single line print the answer to the problem — the maximum total income that we can obtain after exactly k changes.
Sample test(s)
input
3 2-1 -1 1
output
3
input
3 1-1 -1 1
output
1
Note
In the first sample we can get sequence [1, 1, 1], thus the total income equals 3.
In the second test, the optimal strategy is to get sequence [-1, 1, 1], thus the total income equals 1.
要注意的是K次操作必须全都执行,所以在tk=n,k的最小值里做循环,若a小于0则乘以-1,tk-1
另:第一次的ia的sort可以省略
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class CF262B { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String[] nk = in.readLine().split(" "); int n = Integer.parseInt(nk[0]); int k = Integer.parseInt(nk[1]); String[] sa = in.readLine().split(" "); int[] ia = new int[sa.length]; for (int i = 0; i < sa.length; i++) { ia[i] = Integer.parseInt(sa[i]); } //Arrays.sort(ia); int tk = k; for (int i = 0; i < Math.min(n, k); i++) { if (ia[i] < 0) { ia[i] *= -1; tk--; } } if (tk > 0 && (tk & 1) == 1) { Arrays.sort(ia); ia[0] = ia[0] * -1; } int sum = 0; for (int i = 0; i < n; i++) { sum += ia[i]; } System.out.println(sum); }}