Google Code Jam '16 Round 1A Problem A - The Last Word
View as PDFOn the game show The Last Word, the host begins a round by showing the contestant a string  of uppercase English letters. The contestant has a whiteboard which is initially blank. The host will then present the contestant with the letters of 
, one by one, in the order in which they appear in 
. When the host presents the first letter, the contestant writes it on the whiteboard; this counts as the first word in the game (even though it is only one letter long). After that, each time the host presents a letter, the contestant must write it at the beginning or the end of the word on the whiteboard before the host moves on to the next letter (or to the end of the game, if there are no more letters).
For example, for , after writing the word 
C on the whiteboard, the contestant could make one of the following four sets of choices:
- put the 
AbeforeCto formAC, then put theBbeforeACto formBAC - put the 
AbeforeCto formAC, then put theBafterACto formACB - put the 
AafterCto formCA, then put theBbeforeCAto formBCA - put the 
AafterCto formCA, then put theBafterCAto formCAB 
The word is called the last word when the contestant finishes writing all of the letters from , under the given rules. The contestant wins the game if their last word is the last of an alphabetically sorted list of all of the possible last words that could have been produced. For the example above, the winning last word is 
CAB (which happens to be the same as the original word). For a game with , the winning last word is 
MJA.
You are the next contestant on this show, and the host has just showed you the string . What's the winning last word that you should produce?
Input Specification
The first line of the input gives the number of test cases, . 
 test cases follow. Each consists of one line with a string 
.
Output Specification
For each test case, output one line containing Case #x: y, where  is the test case number (starting from 1) and 
 is the winning last word, as described in the statement.
Limits
Time limit: 20 seconds per test set.
Memory limit: 1 GB.
.
Small Dataset
.
Large Dataset
.
Sample Input
7
CAB
JAM
CODE
ABAAB
CABCBBABC
ABCABCABC
ZXCASDQWE
Sample Output
Case #1: CAB
Case #2: MJA
Case #3: OCDE
Case #4: BBAAA
Case #5: CCCABBBAB
Case #6: CCCBAABAB
Case #7: ZXCASDQWE
Comments