Задачи
Задача 1
Максим едет на автобусе и, чтобы развеять скуку, придумал себе игру. Он смотрит в окно и записывает все номера домов на тетрадный листок. На середине пути он берёт новый листок и продолжает записывать номера. В конце пути он хочет узнать, какие номера встретились ему в обоих списках, и выписывает их на третий листок. Если таких номеров нет, то Максим считает поездку не очень удачной и записывает слово EMPTY.
Формат ввода
Сначала вводятся числа с первого листка: по одному на каждой строке. После этого идет пустая строка в качестве разделителя. Затем вводятся числа со второго листочка, также по одному на каждой строке. Завершение ввода — пустая строка.
Формат вывода
Номера, встретившиеся на обоих листках в любом порядке. Если таких номеров нет, надо вывести слово EMPTY.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 2
Аня и Наташа играют в города. Они очень любят эту игру, знают много городов и к концу игры забывают, какие уже называли. На вас возложена почётная задача вести запись игры и напоминать девочкам, если какой-то город уже был назван.
Формат ввода
В первой строке записано число названных городов N. Затем идут N строк с названиями городов и ещё одна строка с новым только что названым городом.
Формат вывода
Слово OK, если такого города ещё не было названо, и TRY ANOTHER, если город уже был назван.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 3
Каждый ученик в классе изучает либо английский, либо немецкий, либо оба этих языка. У классного руководителя есть списки учеников, изучающих каждый из языков. Напишите программу, которая позволит классному руководителю быстро выяснить, сколько учеников изучает только один язык.
Формат ввода
В первых двух строках указывается количество учеников, изучающих английский и немецкий языки (M и N). Затем идут M строк — фамилии учеников, которые изучают английский язык; и N строк с фамилиями учеников, изучающих немецкий. Гарантируется, что среди учеников нет однофамильцев.
Формат вывода
Количество учеников, которые изучают только один язык. Если таких не окажется, в строке вывода нужно написать NO.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 4
Каждый ученик в классе изучает либо английский, либо немецкий, либо оба этих языка. У классного руководителя были списки учеников, изучающих каждый из языков. Для проведения классного мероприятия он напечатал списки и разрезал их пофамильно и разложил полученные листочки две отдельные кучки. Вдруг из окна подул ветер и перемешал листочки в обеих кучах. Помогите классному руководителю выяснить, сколько учеников в классе изучают только один язык.
Формат ввода
В первых двух строках указывается количество учеников, изучающих английский и немецкий языки (M и N). Затем идут M+N строк с фамилиями учеников в произвольном порядке. Гарантируется, что среди учеников нет однофамильцев.
Формат вывода
Количество учеников, которые изучают только один язык. Если таких не окажется, в строке вывода нужно написать NO.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 5
Каждый ученик в классе имеет возможность изучать в группах английский, немецкий или французский языки, а также любую их комбинацию: английский и немецкий, немецкий и французский, английский и французский, английский, немецкий и французский.
У классного руководителя были списки учеников, изучающих каждый из языков. Для проведения классного мероприятия он напечатал списки, разрезал их пофамильно и разложил полученные листочки по кучкам: каждая кучка – это отдельный язык. Вдруг из окна подул ветер и перемешал все листочки. Помогите классному руководителю выяснить, сколько учеников в классе изучают ровно два языка.
Формат ввода
В первых трех строках указывается количество учеников, изучающих английский, немецкий и французский языки (M, N и K). Затем идут M+N+K строк с фамилиями учеников, расположенные в произвольном порядке. Это означает, что перемешались не только сами фамилии, но и группы по изучению языков. Гарантируется, что среди учеников нет однофамильцев.
Формат вывода
Количество учеников, которые изучают ровно два языка. Если таких не окажется, в строке вывода нужно написать NO.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 6
Алексей получил в конце учебного года список литературы на лето. Теперь ему надо выяснить, какие книги из этого списка у него есть, а каких нет. К счастью, у Алексея на компьютере есть текстовый документ, в котором записаны все книги из его домашней библиотеки в случайном порядке. Определите, какие книги из списка на лето есть у Алексея, а каких нет.
Формат ввода
В первой строке записано число M — число книг в домашней библиотеке. Во второй строке записано число N - число книг в списке на лето. В домашней библиотеке и списке книг есть хотя бы по одной книге (M ≥ 1 и N ≥ 1). Далее идут M строчек с названиями книг из домашней библиотеки и N строчек названий из списка на лето. Гарантируется, что все слова в названиях книг разделены одним пробелом, а после последнего слова сразу идёт перевод строки (т. е. нет «невидимых» пробелов).
Формат вывода
Выходные данные: N строчек, в каждой из которых написано слово YES, если книга найдена в библиотеке, и NO, если нет.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 7
Учителю захотелось узнать, кто из учеников присутствовал на всех уроках с начала учебного года. Для каждого урока у учителя есть листок со списком присутствовавших учеников. Фамилии в списках не обязательно идут в алфавитном порядке. Определите фамилии учеников, которые присутствовали на всех уроках.
Формат ввода
В первой строчке указано число листков M. Далее идёт M блоков строчек, описывающих листки с фамилиями. На первой строчке каждого блока указано количество фамилий Ni, затем идёт Ni строчек с фамилиями тех, кто был на уроке i.
Формат вывода
Фамилии учеников, бывших на всех уроках, в произвольном порядке. Каждая фамилия должна быть записана на отдельной строке. Гарантируется, что хотя бы один ученик был на всех уроках.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 8
Начальник кадровой службы хочет узнать, сколько мужчин-однофамильцев работает в организации. У него есть список фамилий, и на основании этого списка нужно вычислить количество фамилий, которые совпадают с другими.
Формат ввода В первой строке указывается количество мужчин - сотрудников организации (N). Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.
Формат вывода
Количество однофамильцев в организации.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 9
Марина пригласила гостей и хочет поразить их своим кулинарным мастерством. На магазин времени не осталось, поэтому ей придётся обойтись продуктами, которые уже есть в холодильнике. В кулинарной книге Марины для каждого рецепта записаны необходимые ингредиенты. Определите, какие рецепты Марина может приготовить. Считайте, что если продукт есть в холодильнике, то его достаточно для приготовления любого блюда по любому рецепту.
Формат ввода
В первой строчке указано число продуктов в холодильнике M. Далее идут M строчек с названиями продуктов. После этого — строчка с числом рецептов N. Далее — N блоков, описывающие каждый из рецептов. Блок начинается со строчки с названием рецепта, затем, на следующей строке - количество ингредиентов в нём. Далее идут названия ингредиентов. Названия каждого ингредиента и рецепта состоят из одного слова.
Формат вывода
Названия рецептов, которые можно приготовить из продуктов в холодильнике, в порядке их появления во входном файле.
Пример 1
Ввод
Вывод
Пример 2
Ввод
Вывод
Задача 10
Главный повар летнего лагеря хочет приготовить в последний день смены блюда, которые ни разу не готовил в течение смены. В его распоряжении есть список блюд, которые можно приготовить в столовой и списки блюд, которые были приготовлены в каждый из дней смены.
Формат ввода
Число блюд (M), которые может приготовить столовая. M строк с названиями блюд. Далее число дней N, для которых есть списки блюд. Далее N блоков строчек для списков блюд на каждый из дней. В первой строчке блока записано число блюд в данный день, затем перечисляются эти блюда.
Формат вывода
Список блюд, которые ещё ни разу не готовили. Каждое блюдо выводится на отдельной строчке. Порядок вывода — произвольный.
Пример
Ввод
Вывод