Сделал 14 задание

This commit is contained in:
parent 3865f0984f
commit d5018b6476

85
lesson.14.py Normal file
View file

@ -0,0 +1,85 @@
''' ****** Задание 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('Готовить нечего')