Задачи
Задача 1
Нобелевская премия по литературе вручается с 1901 года. Согласно Википедии, за это время было присуждено 107 премий. Семь раз — в 1914, 1918, 1935, 1940—1943 годах — награждение не проводилось. Четырежды — в 1904, 1917, 1966 и 1974 годах — премия была разделена между двумя авторами. По заданному имени нобелевского лауреата по литературе выведите год присуждения ему премии. Список лауреатов возьмите со страницы http://noblit.ru/Laureates.
Формат ввода
В единственной строке задано имя и фамилия (иногда с отчеством или вторым именем) нобелевского лауреата. Гарантируется, что введённая строка в точности содержится в первом столбце таблицы на странице http://noblit.ru/Laureates.
Формат вывода
Выведите одно число — год присуждения премии заданному лауреату.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 2
Вася решил записать телефоны всех своих друзей, чтобы потом автоматизировать поиск нужного номера.
У каждого из Васиных друзей может быть один или больше номеров телефонов. Напишите программу, которая поможет Васе находить все номера определённого друга.
Формат ввода
В первой строке задано одно целое число N (1 ≤ N ≤ 1000) — количество номеров телефонов, информацию о которых Вася решил сохранить в телефонной книге. В следующих N строках заданы телефоны и имена их владельцев через пробел. Телефон — это несколько цифр, записанных подряд, имя же состоит только из русских букв. Записи не повторяются.
В следующей строке записано целое число M (1 ≤ M ≤ 100) — количество запросов от Васи. В следующих M строках записаны сами запросы, по одному на строке. Каждый запрос — это имя какого-то друга, чьи телефоны Вася хочет сейчас найти, записанное в точности так, как в телефонной книге.
Формат вывода
Для каждого запроса от Васи выведите в отдельной строке все телефоны, принадлежащие человеку с этим именем. Телефоны одного человека выводите в одну строку через пробел в том порядке, в котором они были заданы во входных данных. Количество строк в ответе должно быть равно количеству запросов Васи.
Если в телефонной книге нет телефонов человека с таким именем, выведите в соответствующей строке «Нет в телефонной книге» (без кавычек).
Пример
Ввод
Вывод
Задача 3
Дан русский текст. Вам необходимо транслитерировать его, то есть заменить все русские буквы на английские по правилам транслитерации для загранпаспортов 2010 года:
http://mishka.travel/blog/index/node/id/1073-transliteraciya-v-zagranpasportah-rossiiskoi-federacii/
Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные. Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»).
Все некириллические символы должны остаться на месте.
Формат ввода
В единственной строке задан русский текст. Текст может состоять из любых символов, вам необходимо транслитерировать только русские буквы, а остальные оставить на месте. Гарантируется, что нет слов, состоящих только из букв «ъ» и «ь».
Формат вывода
Выведите одну строку — транслитерированный текст.
Пример
Ввод
Вывод
Задача 4
На пиратской карте отмечено N точек, в которых зарыты сокровища. Каждая точка задана координатами (xi
, yi
). Координаты указаны в километрах.
Команда Капитана Крюка хочет составить маршрут, чтобы собрать как можно больше кладов. Однако есть ограничение: для любых двух соседних точек маршрута (xi
, yi
) и (xj
, yj
) координаты xi
и xj
могут различаться только последней цифрой, и координаты yi
и yj
тоже могут различаться только последней цифрой.
Например, после точки (15, 10) они могут отправиться в точку (18, 16), а вот из точки (14, 68) в точку (19, 71) пройти уже не получится — ведь 68 и 71 различаются не только последней цифрой. Из точки (5, 12) в точку (13, 14) попасть тоже нельзя, так как числа 5 и 13 отличаются в разряде десятков.
По заданным координатам определите, какое максимальное количество точек сможет добавить в свой маршрут Капитан Крюк.
Формат ввода
В первой строке указано число N (1 ≤ N ≤ 10000) — количество точек, отмеченных на карте сокровищ.
В следующих N строках содержатся пары координат: xi
и yi
— координаты i-ой точки. Координаты — целые числа не меньше нуля и не больше 1000000000. Гарантируется, что совпадающих точек в списке нет.
Формат вывода
Выведите одно число — максимальное количество точек, которое Капитан Крюк сможет посетить по маршруту, построенному по описанным правилам.
Пример
Ввод
Вывод
Задача 5
У Васи N одноклассников. Вася не смог запомнить их дни рождения и решил составить календарь дней рождений класса. По известному списку всех дней рождения научитесь определять, у кого день рождения в заданном месяце.
Формат ввода
В первой строчке записано целое число N (1 ≤ N ≤ 1000) — количество Васиных одноклассников. В следующих N строчках записана информация об их днях рождения. Каждая строчка состоит из трёх частей, разделённых пробелом — имени одноклассника, дня и месяца его рождения. Имя — это строка из русских букв, день — число от 1 до 31, а месяц — строка из набора «янв», «фев», «мар», «апр», «май», «июн», «июл», «авг», «сен», «окт», «ноя», «дек».
Имена всех одноклассников Васи различны.
В следующей строчке записано целое число M (1 ≤ M ≤ 100) — количество вопросов, на которое надо ответить. В следующих M строках содержатся сами вопросы. Вопрос — это название месяца в том же формате, в котором они задаются выше.
Формат вывода
Для каждого вопроса в отдельной строчке через пробел выведите имена всех одноклассников, которые родились в указанном месяце. Имена упорядочьте в лексикографическом порядке. Если в заданном месяце никто не родился, оставьте соответствующую строку ответа пустой.
Пример
Ввод
Вывод
Задача 6
Дана строчка русского текста, состоящая из слов и пробелов. Словом считается последовательность русских букв, слова разделены одним или большим числом пробелов.
Для каждого слова этого текста узнайте порядковый номер его вхождения в текст именно в той форме, в которой указано слово. Для первого вхождения слова выведите «1», для второго вхождения того же слова выведите «2» и так далее.
Формат ввода
В единственной строчке записан русский текст. Длина текста не превышает 100000 символов. Текст состоит только из русских букв и символов пробела.
Формат вывода
Для каждого слова исходного текста выведите одно целое число — номер вхождения этого слова в текст. Числа выведите через пробел. Количество чисел должно совпадать с количеством слов в исходном тексте.
Пример
Ввод
Вывод
Задача 7
Вам дан английский текст. Закодируйте его с помощью азбуки Морзе:
https://en.wikipedia.org/wiki/Morse_code#/media/File:International_Morse_Code.svg
Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: «-», а в качестве точки — точку «.». Например, буква «g» превратится в трёхсимвольную строку «--.». Между закодированными буквами нужно ставится ровно один пробел. Например, слово «Help» превратится в «.... . .-.. .--.».
Обратите внимание, что строчные и заглавные буквы кодируются одинаково.
Формат ввода
Весь текст записан в единственной строке. Текст состоит из английских букв и пробелов, других символов в тексте нет. В тексте не может быть двух или более пробелов подряд. Длина текста не превышает 100000 символов, количество слов в тексте не превышает 1000.
Формат вывода
Выведите каждое слово исходного текста, закодированное азбукой Морзе, на отдельной строке. Количество строк в ответе должно совпадать с количеством слов в исходном тексте.
Пример
Ввод
Вывод
Задача 8
Вася учит новые слова. Для этого он пользуется небольшим толковым словарём. Каждая запись в словаре — это слово и текстовое описание его значения.
Для проверки мама называет Васе слова из словаря — а он должен воспроизводить их описания.
Помогите Васе справиться с проверкой.
Формат ввода
В первой строке задаётся целое число N (1 ≤ N ≤ 1000) — количество записей в толковом словаре Васи. В каждой из следующих N строк дано по одной записи: сначала идёт слово, а затем через пробел непустое описание его значения. Все слова, значение которых записано в словаре, различны.
В следующей строчке после толкового словаря записано целое число M (1 ≤ M ≤ 100) — количество слов, которое проверит мама. В следующих M строках перечислены слова для проверки, по одному на строке. Слова записаны в точности так, как они представлены в словаре.
Формат вывода
Для каждого слова из маминого списка проверки выведите описание его значения из словаря или фразу «Нет в словаре» (без кавычек), если такого слова нет в словаре.
Пример
Ввод
Вывод