D. Распознавание смайликов

Имя входного файла: smile.in
Имя выходного файла: smile.out
Ограничение по времени: 2 s
Ограничение по памяти: 256 megabytes

Сотрудники компании KTP SOLUTIONS работают над созданием адаптивного искусственного интеллекта, способного распознавать эмоциональное состояние собеседника во время онлайн-переписки. Одна из ключевых функций этого алгоритма – распознавание смайликов в тексте. Смайлики, будучи записанными всего двумя символами, таят в себе огромную информацию об эмоциональном состоянии личности.

Функция уже написана, но, как известно, любая часть программы, любая функция, всегда должна быть протестирована. Вас попросили помочь написать альтернативную программу, на основе результатов которой и будет проводиться тестирование. Более точно, вас попросили написать программу, которая по заданному словарю смайликов будет заменять смайлики в тексте на соответствующие слова, обозначающие эмоции.

Формат входного файла

В первой строке входного файла находится два целых числа N и M (1 ≤ N ≤ 150, 1 ≤ M ≤ 500).

В последующих N строках задаётся словарь смайликов. Каждая строка состоит из двух слов разделённых пробелом. Первое слово – смайлик, состоит из двух символов. Первый символ всегда ":" или "=", второй может быть любым символом с ASCII-кодом от 33 до 126. Второе слово длиной не более 15 символов и состоит из строчных букв английского алфавита. Все смайлики различны, но разные смайлики могут означать одно и то же слово.

В последующих M строках записан некий текст для расшифровки. Каждая строка состоит из слов, разделённых пробелами. Каждое слово состоит из символов с кодами от 33 до 126. Длина каждого слова не более 15 символов. Длина каждой строки не более 500 символов. Смайликом может быть только слово из двух символов, присутствующее в словаре.

Формат выходного файла

В выходной файл выведите M строк исходного текста, где каждый найденный смайлик заменён на соответствующее ему слово из словаря. При замене добавьте в начало слова символ "\" (обратная косая черта).

Пример:

smile.insmile.out
3 2 :) smile =( sad :D laugh I'm proud :D of making this problem :) But it is too late now =( I want to sleep :( I'm proud \laugh of making this problem \smile But it is too late now \sad I want to sleep :(
2 1 =/ smile_1 =O smile_2 This string contains =/ and =O but don't contain \smile_3!!! This string contains \smile_1 and \smile_2 but don't contain \smile_3!!!
3 3 :D :D :$ money_in_eyes == :: Smiles can be strange. Take a look on == and :D If we test this AI function, we will be REACH!!! :$ :$ :D :D :D :D :D :D Smiles can be strange. Take a look on \:: and \:D If we test this AI function, we will be REACH!!! \money_in_eyes \money_in_eyes \:D \:D \:D \:D \:D \:D


Источник: Муниципальный этап всероссийской олимпиады школьников по информатике, 2013-2014 учебный год

Обсудить       Отправить решение



Версия для печати