Автор: | Жюри ROI-2005 | Ограничение времени: | 2 сек | |
Входной файл: | errors.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | errors.out | |||
Максимальный балл: | 100 |
При наборе текста довольно часто возникают опечатки из-за неправильного нажатия на клавиши. Например, некоторые буквы оказываются заменены на другие, появляются лишние буквы, некоторые буквы исчезают из слов. В большинстве случаев эти опечатки можно исправить автоматически. В частности, существует метод проверки орфографии, основанный на поиске в словаре слов, похожих на проверяемые.
Два слова называются похожими, если можно удалить из каждого слова не более одной буквы так, чтобы слова стали одинаковыми, возможно пустыми. Например, слова spot и sport похожи, так как одно и то же слово spot можно получить из первого слова без удаления букв, а из второго — удалением буквы r.
Требуется написать программу, которая для каждого слова проверяемого текста определяет количество похожих на него слов в словаре.
В первой строке входного файла через пробел записаны натуральные числа% N ≥ 1 — общее количество слов в словаре и M ≥ 1 — количество слов в проверяемом тексте (N + M ≤ 20 000) В последующих N строках записаны слова, входящие в словарь, по одному на строке. Все слова словаря различны. Далее следуют M строк, в которых записаны слова проверяемого текста, по одному слову в строке.
Слова состоят из строчных и прописных букв латинского алфавита (прописные и строчные буквы считаются различными). Любое слово состоит не менее чем из одной и не более чем из 12 букв.
Для каждого слова из текста выведите в выходной файл строку, содержащую это слово, далее через пробел количество слов из словаря, на которые оно похоже. Если в словаре имеется единственное похожее слово, то также выведите в этой строке это слово (через пробел).
№ | Входной файл (errors.in ) |
Выходной файл (errors.out ) |
---|---|---|
1 |
|
|