project_python.3.2/lesson.14.py

86 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

''' ****** Задание 14 из 20 *********
* Главный повар детского сада хочет быстрее определять, какие блюда можно приготовить на обед.
У него есть список доступных продуктов и список рецептов.
Напишите программу, которая по списку имеющихся продуктов и рецептам определяет, какие блюда можно приготовить.
Формат ввода
Число продуктов (N), которые имеются в наличии.
N строк с названиями продуктов.
Число рецептов (M), о которых имеется информация.
M блоков строк для каждого из рецептов.
В первой строке каждого блока записано название блюда.
Во второй — число ингредиентов.
Затем перечисляются сами ингредиенты, требуемые для приготовления блюда.
Формат вывода
Список блюд, которые можно приготовить в алфавитном порядке.
Если ни одно из блюд нельзя приготовить, следует вывести «Готовить нечего».
Подсказка
Сформируйте множество продуктов в наличии.
При обработке блюд формируйте множество продуктов для него.
Над множествами можно производить операцию first >= second, которая проверяет включение множества second в множество first.
Пример 1
Ввод
4
Яблоки
Хлеб
Варенье
Картошка
3
Тосты
2
Хлеб
Варенье
Яблочный Сок
1
Яблоки
Яичница
1
Яйца
Вывод
Тосты
Яблочный Сок
'''
if __name__ == "__main__":
available_ingredients = []
cookable_dishes = set()
ingredients_count = int(input())
for _ in range(ingredients_count):
available_ingredients.append(input())
total_dishes = int(input())
for _ in range(total_dishes):
dish_name = input()
required_ingredients_count = int(input())
can_cook = True
for _ in range(required_ingredients_count):
if input() not in available_ingredients:
can_cook = False
if can_cook:
cookable_dishes.add(dish_name)
if cookable_dishes:
for dish in sorted(cookable_dishes):
print(dish)
else:
print('Готовить нечего')