Dance Pad Minimum Energy
Time limit2sMemory limit128 MB
Given a sequence of dance pad moves, compute the minimum total energy to press each in order by choosing which of two feet to move each time.
- Level
Medium5 of 10
- Topics
- Dynamic programming, Simulation
- Solved
- No attempts yet
Problem
A player is playing a four-direction dance pad game. The pad has a center and four directional positions. Number the center as 0, up as 1, left as 2, down as 3, and right as 4.
At first, both feet are on the center position 0. For each instruction, the player must press the required position by moving exactly one of the two feet.
Except for the initial state (0, 0), the two feet may not be on the same position. Therefore, if one foot is already on the next required position, that same foot must press it again.
The energy needed to move a foot is as follows.
- Moving from the center 0 to another position costs 2.
- Pressing the same position again costs 1.
- Moving to an adjacent position costs 3.
- Moving to the opposite position costs 4.
For the sequence 1 2 2 4, moving (0, 0) -> (0, 1) -> (2, 1) -> (2, 1) -> (2, 4) uses 8 energy. It is impossible to satisfy all instructions with less energy.
Input
The input is a sequence of integers representing the instructions. Each instruction is one of 1, 2, 3, and 4, representing up, left, down, and right respectively.
The integer 0 marks the end of the sequence and appears once at the end of the input. The number of instructions excluding the final 0 is at most 100,000.
Output
Print the minimum total energy required to satisfy all instructions.