Главный повар детского сада хочет приготовить в праздничный день блюда, которые ни разу не готовил на этой неделе.
В его распоряжении есть список блюд:
- которые можно приготовить в столовой сегодня;
- которые были приготовлены в каждый из дней недели.
Формат ввода
Число блюд (N), которые можно приготовить в столовой.
N строк с названиями блюд. Число дней (M), о которых имеется информация.
M блоков строк для каждого из списков. В первой строке каждого блока записано число блюд в заданный день, затем перечисляются эти блюда.
Формат вывода:
Список блюд, которые ещё не готовились на этой неделе в алфавитном порядке.
Если все возможные блюда уже были приготовлены, следует вывести «Готовить нечего».
Пример
Ввод
5
Овсянка
Рис
Суп
Манная каша
Рыба
2
3
Рис
Суп
Рыба
2
Рис
Рыба
Вывод
Манная каша
Овсянка
Решение
На примере этой задачи рассмотрим решение, которое не сохраняет изначальные данные.
Сначала создаем множество каш. После чего с помощью вложенных чисел принимаем ранее приготовленные каши и удаляем их из множества.
С помощью функции sorted() копируем с одновременной сортировкой множество оставшихся каш в список.
Если список получился не пустой, выводим его элементы по одному на строку, если список пуст – пишем, что готовить нечего.
Посмотреть код
Решение
porridges = set()
for _ in range(int(input())):
if (porridge := input()) not in porridges:
porridges.add(porridge)
for _ in range(int(input())):
for _ in range(int(input())):
if (porridge := input()) in porridges:
porridges.remove(porridge)
menu = sorted(porridges)
if not menu:
print('Готовить нечего')
else:
for porridge in menu:
print(porridge)