Alphabet Animals
면접 대비시간 제한2초메모리 제한512 MB
이전 동물 이름과 아직 사용되지 않은 이름 목록이 주어질 때, 다음 사람이 낼 수 있는 이름을 없애는 이름을 우선 선택하는 문제입니다.
문제
여러 명의 플레이어가 돌아가며 동물 이름을 말하는 게임을 하고 있다. 자기 차례에 말하는 동물 이름은 직전에 말한 동물 이름의 마지막 글자와 같은 글자로 시작해야 하고, 이번 게임에서 아직 나오지 않은 이름이어야 한다. 낼 수 있는 이름이 없거나 떠올리지 못하면 탈락한다.
자기 차례 직전에 나온 동물 이름과 아직 사용되지 않은 모든 이름이 주어질 때, 이번 차례를 무사히 넘길 수 있는가? 넘길 수 있다면, 다음 플레이어를 탈락시킬 수 있는가?
입력
첫째 줄에는 직전 플레이어가 방금 말한 동물 이름이 하나 주어진다. 둘째 줄에는 아직 사용되지 않은 유효한 동물 이름의 개수 n (0 ≤ n ≤ 105)이 주어진다. 그다음 n개 줄에는 유효하고 아직 사용되지 않은 동물 이름이 한 줄에 하나씩 주어진다.
모든 동물 이름(직전 플레이어가 말한 이름 포함)은 서로 다르며, 길이가 1 이상 20 이하인 소문자 ‘a’-‘z’로만 이루어져 있다.
출력
다음 플레이어를 탈락시킬 수 있는 동물 이름이 하나라도 있으면, 입력 목록에서 그런 이름 중 첫 번째 것을 느낌표와 함께 출력한다. 그런 이름이 없지만 낼 수 있는 동물 이름이 하나라도 있으면, 그중 첫 번째 것을 출력한다. 둘 다 없으면 물음표를 출력한다. 이 경우에는 다른 플레이어들이 진짜 동물이라고 믿어 주기를 바라며 가짜 이름을 지어내야 한다.