암호문 복호화
시간 제한1초메모리 제한128 MB
문자 부피 합과 단어 수, 순위가 주어지면 사전 순으로 I번째 메시지를 복원하고 없으면 오류를 출력합니다.
문제
한 첩보원이 아주 효율적인 암호로 전문을 주고받는다. 문장이 아무리 길어도 수 세 개만 보내면 전달된다.
국가안보국이 오랜 분석 끝에 밝혀낸 규칙은 다음과 같다.
- 전문에는 영어 소문자와 공백만 쓴다. 문자마다 문자 무게라는 정수가 정해져 있다. 공백은 ,
a는 ,b는 , 이렇게 이어져z는 이다. 전문 전체의 무게 는 전문에 들어 있는 모든 문자의 무게를 더한 값이다. - 전문은 단어 개로 이루어진다. 단어는 소문자가 연달아 이어진 부분이고, 전문의 맨 앞과 맨 뒤에는 공백이 없으며, 이웃한 두 단어 사이에는 공백이 정확히 하나 있다.
- 무게가 이면서 단어가 정확히 개인 전문을 모두 모아 사전순으로 정렬한 목록을 라 하자. 부터 시작하는 순번 로 안의 전문 하나를 가리킬 수 있다.
첩보원은 전문 을 보낼 때 의 무게 와 단어 개수 를 구한 다음, 그에 해당하는 목록 에서 의 순번 를 찾아 , , 세 수만 보낸다.
, , 가 주어진다. 첩보원의 전문을 복호화하라. 조건에 맞는 전문이 없으면 없다고 답하라.
사전순으로 비교할 때 공백은 모든 소문자보다 앞선다.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다. ()
다음 개의 줄에 각각 정수 세 개가 공백으로 구분되어 주어진다. 전문의 무게 , 단어 개수 , 전문의 순번 이다. (, , )
출력
각 테스트 케이스마다 한 줄에 Case #x: 를 먼저 출력하고 이어서 복호화한 전문을 출력한다. 는 부터 시작하는 테스트 케이스 번호다. 주어진 , , 에 해당하는 전문이 없으면 전문 자리에 Corrupted!를 출력한다.
힌트
무게가 이고 단어가 개인 전문을 사전순으로 정렬하면 a aa, a c, aa a, b b, c a 다섯 개다. 그래서 순번 이 가리키는 전문은 aa a다.
무게가 이고 단어가 개인 전문은 a 하나뿐이다. 목록에 전문이 하나밖에 없는데 순번 를 요구했다면 어딘가 잘못된 것이다.