Call Me Maybe
면접 대비시간 제한2초메모리 제한1024 MB
가사의 각 단어를 연설에서 찾은 등장 위치로 차례대로 대응시키고, 한 번도 나오지 않은 단어가 있으면 불가능하다고 출력합니다.
문제
인기 곡 "Call Me Maybe"(Carly Rae Jepson)는 최근 인터넷에서 웃긴 패러디로 많이 만들어졌다. 특히 한 유튜브 영상은 오바마 대통령의 여러 연설에서 단어를 골라 이어 붙여 이 곡의 가사를 만들었다. (소문에 따르면 앙겔라 메르켈이 오바마 씨의 전화를 몹시 기다리고 있다고 한다.) 여러분은 이 아이디어가 웃음의 금광이라고 판단했다. 특정 인물의 연설 모음과 노래 가사가 주어졌을 때, 모든 연설의 텍스트를 검사해서 연설의 단어를 가사에 맞는 단어로 바꿔 넣는 프로그램을 작성하려 한다. 예를 들어 "Call Me Maybe"의 첫 줄은 "I threw a wish in the well."이다. "I"는 4번 연설의 10번째 단어에, "threw"는 12번 연설의 54번째 단어에 나올 수 있다. 물론 연설자가 어떤 연설에서도 "wish"라고 말한 적이 없다면 이 패러디는 만들 수 없다.
인물의 연설 목록과 노래 가사가 주어졌을 때, 패러디가 가능한지 판단하고, 가능하다면 각 대체어를 어느 연설의 몇 번째 단어에서 가져올지 목록으로 제시한다.
답이 하나로 정해지도록, 연설 모음에서 단어가 나타나는 모든 위치를 연설 번호와 단어 번호 순서로 차례대로 사용한다. 노래에 "I"가 다섯 번 나오고, 연설에서 "I"가 (1) 2번 연설의 7번째 단어, (2) 4번 연설의 12번째 단어, (3) 4번 연설의 50번째 단어, (4) 5번 연설의 1번째 단어에 나온다고 하자. 그러면 첫 번째 대체는 2번 연설의 7번째 단어, 두 번째는 4번 연설의 12번째 단어, 세 번째는 4번 연설의 50번째 단어, 네 번째는 5번 연설의 1번째 단어에서 가져오고, 다섯 번째는 다시 2번 연설의 7번째 단어를 쓴다. 단어가 연설에 나타나는 횟수가 노래에 나타나는 횟수와 같을 필요는 없다. 다만 연설에 최소 한 번은 나와야 한다. 한 연설 안에서 단어가 여러 번 나오면, 그 출현들을 차례대로 모두 쓴 뒤에야 다음 연설의 첫 출현을 쓴다.
입력
첫 줄에 생성할 패러디의 개수 n (1 ≤ n ≤ 20)이 주어진다. 각 입력 세트는 다음과 같다. 세트의 첫 줄에는 텍스트가 있는 연설의 수 m (1 ≤ m ≤ 100)이 주어진다. 이어서 각 연설이 한 줄씩 주어진다. 각 줄의 첫 토큰은 연설의 단어 수 t (1 ≤ t ≤ 1000)이고, 그 뒤에 단어 t개가 이어진다. 각 단어는 소문자 1자 이상 20자 이하로 이루어진다. 단어는 공백으로 구분되며, 이 줄에는 다른 문자가 없다.
연설 뒤의 한 줄에는 패러디할 노래 가사가 주어진다. 첫 토큰은 가사의 단어 수 l (1 ≤ l ≤ 50)이고, 그 뒤에 단어 l개가 이어진다. 각 단어는 소문자 1자 이상 20자 이하로 이루어지며, 단어는 공백으로 구분되고 이 줄에는 다른 문자가 없다.
출력
각 패러디마다 먼저 "Spoof #i: "를 출력한다. i는 1부터 시작하는 패러디 번호다. 패러디를 만들 수 없으면 "NOT POSSIBLE"만 출력한다. 만들 수 있으면 다음 줄부터 가사의 단어 수 w만큼 줄을 출력한다. 각 줄에는 연설 번호와 단어 번호를 공백 하나로 구분한 두 정수를 쓴다. 두 번호 모두 1부터 시작한다. 각 테스트 케이스의 출력 뒤에는 빈 줄을 하나 남긴다.