Logo
(追記) (追記ここまで)

29609번 - Соло на клавиатуре 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB10000.000%

문제

Работники Министерства Быстрой Печати и Длинных Строк озабочены новой проблемой. В последнее время сложность набираемых ими текстов существенно увеличилась, и они стали допускать ошибки. К счастью, уровень подготовки в МБПДС высокий, поэтому любой работник в любом слове допускает не более одной ошибки.

Ошибки, которые могут допустить работники МБПДС, таковы:

  • вместо нужной клавиши нажата соседняя;
  • клавиша не нажата;
  • перед нужной клавишей нажата одна из соседних клавиш;
  • после нужной клавиши нажата одна из соседних клавиш;

Для клавиши на клавиатуре соседними считаются шесть клавиш: слева, справа, слева сверху, справа сверху, слева снизу, справа снизу. Клавиатура является стандартной QWERTY-клавиатурой и изображена на рисунке.

Министерство хочет автоматизировать процесс исправления ошибок. Для этого нужно написать программу, которая могла бы по данному слову, в котором допущено не более одной ошибки, выводить список словарных слов, которые могли быть введены.

Помогите работникам МБПДС и напишите такую программу.

입력

В первой строке входного файла находится число $N$ (1ドル \le N \le 5 \cdot 10^4$) --- число слов в словаре. В каждой из следующих $N$ строк содержится по одному слову из словаря. Все слова в словаре различны.

В следующей строке находится число $M$ (1ドル \le M \le 5 \cdot 10^4$) --- слова, которые необходимо исправить. Каждая из следующих $M$ строк содержит по одному слову для проверки.

Все слова в файле состоят из прописных латинских букв. Во входном файле не содержится пустых строк. Размер входного файла не превышает одного мегабайта. q

출력

Для каждого из слов, подлежащих исправлению, выведите информацию о возможных его исправлениях. Эта информация состоит из блока, включающего одну или несколько строк. Первая строка блока содержит одно целое число $C_i$ --- число словарных слов, которые могли бы соответствовать введенному слову. Далее необходимо вывести эти словарные слова в лексикографическом порядке, по одному на каждой строке. Если $C_i > 5,ドル выведите только первые пять слов.

제한

예제 입력 1

7
solving
contests
is
what
makes
us
happy
3
solvung
js
qwerty

예제 출력 1

1
solving
2
is
us
0

예제 입력 2

6
letterq
letterw
lettere
letterr
lettert
lettery
2
letter
lertterq

예제 출력 2

6
lettere
letterq
letterr
lettert
letterw
1
letterq

힌트

출처

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2009-2010 Season > December 12, 2009 B번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /