Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
ACM_0096 - YOU WIN! |
You just achieved the High Score on your favorite video game! Now, you get to enter your name! You have to use the controller to enter your name, which can be awkward. Here’s how it works:
- There are only the 26 capital letters A to Z, in order. There are no numbers, spaces, lower case letters, or any other characters.
- Pushing UP or DOWN changes the active letter one letter forward (UP) or backward (DOWN). The active letter starts at A. It will not reset when you move around in the name. It also wraps: UP from Z goes to A, DOWN from A goes to Z.
- Pushing LEFT or RIGHT moves the cursor one letter left or right in the current name. Note that once the cursor is at either end of the current name, it cannot move any further in that direction.
- Pushing the FIRE button adds the active letter to the name.
For example, consider the name ‘ALMA’. One way you could enter ‘ALMA’ is like this:
Action |
# of Pushes |
Name (| = Cursor) |
Active Letter |
FIRE |
1 |
A| |
A |
UP |
11 |
A| |
L |
FIRE |
1 |
AL| |
L |
UP |
1 |
AL| |
M |
FIRE |
1 |
ALM| |
M |
DOWN |
12 |
ALM| |
A |
FIRE |
1 |
ALMA| |
A |
This would take 28 button pushes. However, consider entering ‘ALMA’ like this:
Action |
# of Pushes |
Name (| = Cursor) |
Active Letter |
FIRE |
1 |
A| |
A |
FIRE |
1 |
AA| |
A |
LEFT |
1 |
A|A |
A |
UP |
11 |
A|A |
L |
FIRE |
1 |
AL|A |
L |
UP |
1 |
AL|A |
M |
FIRE |
1 |
ALM|A |
M |
This takes only 17 button pushes. Given a name, what is the fewest number of button pushes needed to enter that name? Assume that the active letter starts at A, and that it doesn’t matter where the cursor ends up when you’re done.
Input
There will be several test cases in the input. Each test case will consist of a single string on its own line, with from 1 to 18 capital letters, representing a name that must be entered into the High Score list. The input will end with a line with a single 0.
Output
For each test case, output a single integer representing the smallest number of button pushes needed to enter the name. Output no spaces, and do not separate answers with blank lines.
Examples
№ |
stdin |
stdout |
1 |
ALMA YES 0 |
17 21 |
Ավելացրեց. | Հրանտ Հովհաննիսյան |
Ամսաթիվ. | 2014-01-12 |
Ժամանակի սահմանափակումը. | 1s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | Բոլորը բացի ASM32 ASM64 GAWK CLPS CLOJURE D ERL FSHARP FORTRAN GOSU HASK ICON ICK NEM NIM OBJC-CLANG PICO PIKE PYPY PYPY3 PY_NBC RUST SCM guile CHICKEN SED TCL WHITESPACE |
Աղբյուրը. | NA Southeast Div I 2013.J |