Under construction

Still being built. Things may change

Dance Pad Minimum Energy

Time limit2sMemory limit128 MB

Summary
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.

Examples1

  1. Example 1

    Input
    1 2 2 4 0
    
    Expected output
    8