Computer game with path restoration
In many classic two-dimensional video games, players often encounter a scenario where a hero must jump across platforms suspended in mid-air, moving from one side of the screen to the other. When the hero jumps from one platform to an adjacent one, the energy cost is (|y_2-y_1|), where (y_2) and (y_1) are the heights of these platforms. Additionally, the hero can perform a special move to skip a platform, but this costs (3 |y_2-y_1|) units of energy. Naturally, the goal is to minimize energy expenditure.
The heights of the platforms are given in sequence from the leftmost to the rightmost edge. Your task is to determine the minimum energy required to travel from the first platform to the last, as well as the sequence of platforms that should be traversed.
Input
The first line contains the number of platforms (N) ((2 N 100000)). The second line contains (N) integers, each with an absolute value not exceeding 4000, representing the heights of the platforms.
Output
On the first line, output the minimum energy required. On the second line, output the number of platforms that need to be traversed. On the third line, output the sequence of these platforms.
Examples
Note
For some inputs, there may be multiple valid sequences of platforms. Your program should output any one of them.