Украинские Олимпиады
Украинские Олимпиады по Информатике
по Информатике

Соревнования

Информация
Добро пожаловать
Гостевая книга
Обратная связь
О сайте

ACM-олимпиада
Новости
Правила
Задачи
Сдать задачу
Таблица результатов

IOI-олимпиада
Новости
Правила
Последние задачи
Последние результаты
Архив

"Трудно-решаемая" задача
Новости
Правила
Последняя задача
Последние результаты
Архив

Логические игры
Новости
Правила
Виды игр
Последний турнир
Архив

Викторина
Новости
Правила
Последняя викторина
Архив

 
 
Ровно'1996

Проверка слов

  

 

Рассмотрим такие элементарные преобразования слов, записанных малыми латинскими буквами:

Замена любой буквы на любую другую, например test -> text;

Удаление любой буквы, например text -> ext; або text -> txt;

Вставка любой буквы в начало, середину или конец, например each -> peach, bat -> boat, або test -> tests;

Взаимная перестановка двух соседних букв, например cat -> act.

 

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

Задание

Заданы два файла - текст и словарь. Напишите программу, определяющую для каждого слова текста все слова из словаря, находящиеся от этого слова на наименьшем расстоянии.

Технические условия

Ваша программа должна называться NEAREST.* где расширение * зависит от языка программирования.

Входные данные

Текст содержится в текстовом ASCII-файле TEXT.DAT, каждая строка которого имеет длину не более 80 символов ? может содержать несколько слов. Соседние слова в строке разделены пробелом. Знаков пунктуации (точек, запятых, и т.п. нет. Словарь содержится в текстовом ASCII-файле LEX.DAT, первая строка которого содержит количество слов (оно не перевышает 4000), а каждая следующая строка содержит отдельное слово длиной не более 20 символов. Слова упоряочены по алфавиту.

Выходные данные

Результат надо вывести в текстовый ASCII-файл NEAREST.SOL с такой структурой. Для каждого слова из TEXT.DAT надо вывести в отдельной строке минимальное расстояние до слов LEX.DAT, в следующей строке - количество ближайших слов оз LEX.DAT, а далее - все ближайшие слова из LEX.DAT в отдельных строках в алфавитном порядке. Ответы для слов из TEXT.DAT надо выводить последовательно в соответствии с порядком слов в тексте, не разделяя их пустыми строками.

Пример TEXT.DAT
the quick brown fox
jumps over the lazy dog 
Пример LEX.DAT
11
box
crazy
crown
god
grow
jump
overflow
overlap
overload
ox
queen
the
Пример NEAREST.SOL
0
1
the
3
1
queen
1
1
crown
1
2
box
ox
1
1
jump
3
3
overlap
ox
the
0
1
the
2
1
crazy
2
3
box
god
ox

  

 

Сборник

Олимпиады
Международные
Всесоюзные
Всеукраинские (IV этап)
Разные...

Всеукраинские олимпиады
1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002

Отборочные сборы
1992 1993 1994 1996 1997 1998 1999 2000 2001 2002

Международные олимпиады
1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002

Всесоюзные олимпиады
1989 1990 1991 1992

Информация
Список ссылок
Литература
Статьи
Рассылки
Интервью

© Разработано рабочей группой UOI 1998-2002 гг.