만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

The Last Word (Large)

면접 대비

시간 제한5초메모리 제한512 MB

요약
각 글자를 현재 단어의 앞이나 뒤에 넣어 만들 수 있는 마지막 단어 중 사전순으로 가장 큰 것을 구한다.
난이도

보통10점 중 4점

유형
그리디, 문자열, 구현
정답자
아직 제출이 없습니다

문제

게임 쇼 The Last Word에서 진행자는 영어 대문자로 이루어진 문자열 SS를 참가자에게 보여 주면서 라운드를 시작한다. 참가자에게는 처음에 비어 있는 화이트보드가 있다. 진행자는 SS의 글자를 SS에 나타난 순서대로 하나씩 참가자에게 제시한다. 진행자가 첫 글자를 제시하면 참가자는 그 글자를 화이트보드에 쓰고, 이것이 게임의 첫 단어가 된다(글자가 하나뿐이어도 단어로 친다). 그 뒤로 진행자가 글자를 제시할 때마다 참가자는 진행자가 다음 글자로 넘어가기 전에(남은 글자가 없으면 게임이 끝나기 전에) 그 글자를 화이트보드에 있는 단어의 맨 앞이나 맨 뒤에 써야 한다.

예를 들어 SS = CAB이면 화이트보드에 단어 C를 쓴 뒤 참가자는 다음 네 가지 방법 중 하나를 고를 수 있다.

  • A를 C 앞에 붙여 AC를 만들고, B를 AC 앞에 붙여 BAC를 만든다.
  • A를 C 앞에 붙여 AC를 만들고, B를 AC 뒤에 붙여 ACB를 만든다.
  • A를 C 뒤에 붙여 CA를 만들고, B를 CA 앞에 붙여 BCA를 만든다.
  • A를 C 뒤에 붙여 CA를 만들고, B를 CA 뒤에 붙여 CAB를 만든다.

참가자가 규칙에 따라 SS의 글자를 모두 쓰고 나서 완성된 단어를 마지막 단어라고 한다. 만들 수 있는 모든 마지막 단어를 사전순으로 정렬했을 때 참가자의 마지막 단어가 목록의 맨 끝에 오면 참가자가 이긴다. 위 예에서 이기는 마지막 단어는 CAB이다(마침 원래 단어와 같다). SS = JAM이면 이기는 마지막 단어는 MJA이다.

당신이 이 쇼의 다음 참가자이고, 진행자가 방금 문자열 SS를 보여 주었다. 어떤 마지막 단어를 만들어야 이기는지 구하시오.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어지며, 각 테스트 케이스는 문자열 SS 하나로 이루어진 한 줄이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤1 \le (SS의 길이) ≤1000\le 1000
  • SS는 영어 대문자로만 이루어져 있다.

출력

각 테스트 케이스마다 Case #x: y 형식의 줄을 하나 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 문제에서 설명한 이기는 마지막 단어이다.

예제1

  1. 예제 1

    입력
    7
    CAB
    JAM
    CODE
    ABAAB
    CABCBBABC
    ABCABCABC
    ZXCASDQWE
    
    예상 출력
    Case #1: CAB
    Case #2: MJA
    Case #3: OCDE
    Case #4: BBAAA
    Case #5: CCCABBBAB
    Case #6: CCCBAABAB
    Case #7: ZXCASDQWE