키보드 솔로
시간 제한2초메모리 제한1024 MB
입력된 단어가 키 실수 한 번으로 만들어질 수 있는 사전 단어를 찾아, 사전순으로 최대 5개까지 출력합니다.
문제
미니스트리 오브 패스트 프린팅 앤 롱 스트링스(MBPDS) 직원들이 새로운 문제로 걱정하고 있다. 최근 입력하는 텍스트가 어려워져서 실수가 늘었다. 다행히 MBPDS 직원들은 훈련이 잘 되어 있어서, 어떤 단어에서든 실수는 최대 한 번만 한다.
발생할 수 있는 실수는 다음과 같다.
- 필요한 키 대신 이웃한 키를 누른다.
- 필요한 키를 누르지 않는다.
- 필요한 키 앞에서 이웃한 키 중 하나를 누른다.
- 필요한 키 뒤에서 이웃한 키 중 하나를 누른다.
한 키의 이웃은 왼쪽, 오른쪽, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래의 여섯 개 키다. 키보드는 그림에 나온 표준 QWERTY 키보드다.
부처는 오류 수정을 자동화하려고 한다. 실수가 최대 한 번인 단어가 주어졌을 때, 입력되었을 수 있는 사전 단어를 출력하는 프로그램을 작성하라.
입력
첫 줄에 사전의 단어 수 ()이 주어진다. 다음 개 줄에는 사전의 단어가 한 줄에 하나씩 주어진다. 사전의 단어는 모두 서로 다르다.
다음 줄에는 검사할 단어 수 ()이 주어진다. 다음 개 줄에는 검사할 단어가 한 줄에 하나씩 주어진다.
모든 단어는 대문자 라틴 알파벳으로 이루어져 있다. 입력 파일에는 빈 줄이 없고, 크기는 1메가바이트를 넘지 않는다.
출력
수정할 단어마다 한 줄 이상으로 이루어진 블록을 출력한다. 블록의 첫 줄에는 입력된 단어에 해당할 수 있는 사전 단어의 개수 를 출력한다. 이어서 그 사전 단어들을 사전 순서대로 한 줄에 하나씩 출력한다. 이면 처음 다섯 개 단어만 출력한다.