86 lines
2.8 KiB
Python
86 lines
2.8 KiB
Python
''' ****** Задание 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('Готовить нечего')
|
||
|
||
|
||
|
||
|
||
|
||
|