션의 순서 기반 추측 규칙에서 빗나간 추측이 가장 많아지는 사전 단어를 고르고 동점이면 사전 순으로 앞선 단어를 선택합니다.
보통5시뮬레이션문자열완전 탐색면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB행맨 게임을 친구 션과 한다. 션은 이 게임을 잘 하지 못한다. 션의 허술한 전략을 이용해서 점수를 최대한 많이 잃게 만들어 보자.
+--+
| O
| / | \ 가려진 단어: _ a _ a _ a _
| / \
|
+-+---+
행맨의 규칙은 다음과 같다.
a부터 z까지의 문자로만 이루어지며 공백은 없다._로 가린다.션의 전략은 아주 단순하다. 26개의 글자를 어떤 순서로 나열한 목록 L을 만들고 앞에서부터 한 글자씩 살펴본다. 지금 보고 있는 글자에 대해 (a) 그 글자를 포함하면서 (b) 칠판에 적힌 내용과 션의 이전 추측 결과에 모두 들어맞는 단어가 D에 하나라도 있으면 션은 그 글자를 추측한다. 없으면 건너뛴다. 어느 쪽이든 션은 목록의 다음 글자로 넘어간다.
션의 목록이 주어질 때, 션이 점수를 가장 많이 잃게 하려면 어떤 단어를 골라야 하는가? 잃는 점수가 같은 단어가 여럿이면 D에서 먼저 나오는 단어를 고른다.
션이 알파벳 순서로 추측하고(즉 L = abcdefghijklmnopqrstuvwxyz), D에 banana, caravan, pajamas가 들어 있다고 하자. 내가 pajamas를 고르면 라운드는 이렇게 흘러간다.
_ _ _ _ _ _ _를 적는다. 밑줄 개수만 보고도 션은 단어가 caravan 아니면 pajamas임을 안다.a를 추측하고, 나는 a가 나오는 위치를 모두 공개한다: _ a _ a _ a _.banana에 b가 쓰이지만 션은 b를 건너뛴다. banana가 답이 아니라는 것을 이미 알기 때문이다.c를 추측한다. caravan에 c가 있기 때문이다. 내가 고른 단어에는 c가 없으므로 션은 1점을 잃고, 새로 공개되는 글자도 없다.pajamas뿐이므로 션은 j, m, p, s를 차례로 추측하고 점수를 더 잃지 않는다.이렇게 pajamas를 고르면 션은 1점을 잃는다. 나머지 두 단어 중 어느 쪽을 골랐다면 션은 한 점도 잃지 않았을 것이다.
첫째 줄에 테스트 케이스의 수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫째 줄에는 사전에 있는 단어의 수 N과 살펴볼 목록의 수 M이 주어진다.
다음 N개 줄에는 사전의 단어 D1,D2,…,DN이 한 줄에 하나씩 주어진다. 각 단어는 a부터 z까지의 문자로 이루어진 임의의 문자열이다.
마지막 M개 줄에는 션이 사용할 목록 L1,L2,…,LM이 한 줄에 하나씩 주어진다. 각 목록은 정확히 26글자이며 알파벳 소문자가 각각 정확히 한 번씩 나온다. 션은 이 목록을 위에서 설명한 방식으로 사용해 글자를 추측한다.
각 테스트 케이스마다 Case #x: w1 w2 ... wM 형식으로 한 줄씩 출력한다. x는 테스트 케이스 번호(1부터 시작)이고, wi는 션이 Li의 순서로 글자를 추측할 때 내가 골라야 하는 단어다. 션이 잃는 점수가 같은 단어가 여럿이면 사전에서 먼저 나오는 단어를 출력한다.