Assume you are given an array of integers, array of integers from the interval and an integer .
We are doing a Warshall-Turing-Fourier transformation (this doesn't really exist) on array in the following way:
sum = 0
for i = 1 to N
index = min{ ID[i], ID[i+1] }
sum = sum + A[index]
rotate array A to the right by R places
change the signs of all elements in A
for i = 1 to N
index = max{ ID[i], ID[i+1] }
index = index + 1
sum = sum + A[index]
rotate array A to the right by R places
You are given the array and constant , but you are not familiar with the array . What is the
largest possible value of variable sum
after execution of the above algorithm?
Input
The first line of input contains the integers and from the task.
The second line of input contains the elements of array , respectively from to . These are integers from the interval .
Output
The first line of output must contain the maximal value of sum
.
The second line of output must contain the array of integers from the interval for which the algorithm outputs the maximal sum. If there are multiple such arrays, output any.
If only the first line is correct (regardless of whether the second is printed), you will get of points for the corresponding test case.
Scoring
In test cases worth of total points, it will hold .
In test cases worth of total points, it will hold .
Sample Input 1
5 3
1 -1 1 -1 1
Sample Output 1
10
1 1 1 2 2 3
Sample Input 2
6 5
2 5 4 1 3 5
Sample Output 2
16
3 2 1 1 5 4 1
Comments