diff --git a/lesson.14.py b/lesson.14.py new file mode 100644 index 0000000..3523b7b --- /dev/null +++ b/lesson.14.py @@ -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('Готовить нечего') + + + + + +