Given a array of
integers and an integer
, find a subsequence of this array such that the alternating sum of this subsequence is maximal, and the absolute difference between any two adjacent elements in the subsequence is at most
.
If there are multiple solutions, print the lexicographically least.
An array is a subsequence of
if
can be obtained by deleting some of the elements in
. It is not required to delete any elements.
We define the alternating sum of a subsequence as the result of adding each value at an odd index in the sequence (1-indexed), and subtracting each value at an even index in the sequence.
Imagine a sequence of length
:
We define the alternating sum of as:
The inequality must hold for
Input Specification
The first line will contain integers,
.
The second line will contain integers
.
Output Specification
On the first line, output a single integer, the maximum alternating sum you can obtain.
On the second line, output the indices (1-indexed) of the elements contained in the subsequence.
Subtasks
Subtask 1 (5%)
Subtask 2 (25%)
Subtask 3 (70%)
No further constraints.
Sample Input 1
4 3
-1 2 3 4
Sample Output 1
4
4
Explanation for Sample 1
The maximum alternating sum is simply , the only element included is at index 4.
Sample Input 2
5 100
3 -4 -2 -9 10
Sample Output 2
24
1 2 3 4 5
Explanation for Sample 2
The maximum alternating sum is , which can be obtained by choosing elements
,
,
,
and
in your subsequence.
Sample Input 3
5 7
3 -4 -2 -9 10
Sample Output 3
14
1 2 3 4
Explanation for Sample 3
The maximum alternating sum is , which can be obtained by choosing elements
,
,
and
in your subsequence. Note that the result here differs from that of sample output two due to the
constraint.
Comments