TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description

Roland is a high-school math teacher. Every day, he gets hundreds of papers from his students. For each paper, he carefully chooses a letter grade: 'A', 'B' or 'C'. (Roland's students are too smart to get lower grades like a 'D' or an 'F'). Once the grades are all decided, Roland passes the papers onto his assistant - you. Your job is to stamp the correct grade onto each paper.


You have a low-tech but functional letter stamp that you use for this. To print out a letter, you attach a special plate to the front of the stamp corresponding to that letter, dip it in ink, and then apply it to the paper.


The interesting thing is that instead of removing the plate when you want to switch letters, you can just put a new plate on top of the old one. In fact, you can think of the plates on the letter stamp as being a stack, supporting the following operations:



  • Push a letter on to the top of the stack. (This corresponds to attaching a new plate to the front of the stamp.)

  • Pop a letter from the top of the stack. (This corresponds to removing the plate from the front of the stamp.)

  • Print the letter on the top of the stack. (This corresponds to actually using the stamp.) Of course, the stack must actually have a letter on it for this to work.



Given a sequence of letter grades ('A', 'B', and 'C'), how many operations do you need to print the whole sequence in order? The stack begins empty, and you must empty it when you are done. However, you have unlimited supplies of each kind of plate that you can use in the meantime.


For example, if you wanted to print the sequence "ABCCBA", then you could do it in 12 operations, as shown below:


Input Format

The first line of the input file contains the number of cases, T(1<=T<=20). T test cases follow, one per line. Each of these lines contains a single string S with length no more than 3000, representing the sequence of characters that you want to print out in order. S is a non-empty string containing only the letters 'A', 'B', and 'C'.

Output Format

For each test case, output one line containing "Case #x: N", where x is the case number (starting from 1) and N is the minimum number of stack operations required to print out S.

Sample Input 1

2
ABCCBA
AAABAAB

Sample Output 1

Case #1: 12
Case #2: 13

Hints

Problem Source

Migrated from old NTUJ.

GCJ2010 Final pA

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 15000 65536 200