You are given a string of uppercase English letters. You can highlight any number of the letters (possibly all or none of them). The highlighted letters do not need to be consecutive. Then, a new string is produced by processing the letters from left to right: non-highlighted letters are appended once to the new string, while highlighted letters are appended twice.

For example, if the initial string is HELLOWORLD
, you could highlight the H
, the first and last L
s and the last O
to obtain HHELLLOWOORLLD
. Similarly, if you highlight nothing, you obtain HELLOWORLD
, and if you highlight all of the letters, you obtain HHEELLLLOOWWOORRLLDD
. Notice how each occurrence of the same letter can be highlighted independently.
Given a string, there are multiple strings that can be obtained as a result of this process, depending on the highlighting choices. Among all of those strings, output the one that appears first in alphabetical (also known as lexicographical) order.
Note: A string CODE
, HELLO
, HI
, HIM
, HOME
, JAM
.
Input Specification
The first line of the input gives the number of test cases,
Output Specification
For each test case, output one line containing Case #x: y
, where
Limits
Time limit: 2 seconds.
Memory limit: 1 GB.
Each character of
Test Set 1
Test Set 2
Sample Input
3
PEEL
AAAAAAAAAA
CODEJAMDAY
Sample Output
Case #1: PEEEEL
Case #2: AAAAAAAAAA
Case #3: CCODDEEJAAMDAAY
In Sample Case #1, these are all the strings that can be obtained, in alphabetical order:
PEEEEL
,
PEEEELL
,
PEEEL
,
PEEELL
,
PEEL
,
PEELL
,
PPEEEEL
,
PPEEEELL
,
PPEEEL
,
PPEEELL
,
PPEEL
, and
PPEELL
.
In Sample Case #2, every string that can be obtained contains only A
s. The
shortest of those is alphabetically first, because it is a prefix of all others.
In Sample Case #3, there are CODEJAMDAY
out of which CCODDEEJAAMDAAY
is the lexicographically
smallest one.
Comments