M. Дайте чего-нибудь новенького!

Главный повар детского сада хочет приготовить в праздничный день блюда, которые ни разу не готовил на этой неделе.
В его распоряжении есть список блюд:

  • которые можно приготовить в столовой сегодня;
  • которые были приготовлены в каждый из дней недели.

Формат ввода

Число блюд (N), которые можно приготовить в столовой.
N строк с названиями блюд. Число дней (M), о которых имеется информация.
M блоков строк для каждого из списков. В первой строке каждого блока записано число блюд в заданный день, затем перечисляются эти блюда.

Формат вывода:

Список блюд, которые ещё не готовились на этой неделе в алфавитном порядке.
Если все возможные блюда уже были приготовлены, следует вывести «Готовить нечего».

Пример

Ввод

5
Овсянка
Рис
Суп
Манная каша
Рыба
2
3
Рис
Суп
Рыба
2
Рис
Рыба

Вывод

Манная каша
Овсянка

Решение

На примере этой задачи рассмотрим решение, которое не сохраняет изначальные данные.

Сначала создаем множество каш. После чего с помощью вложенных чисел принимаем ранее приготовленные каши и удаляем их из множества.
С помощью функции sorted() копируем с одновременной сортировкой множество оставшихся каш в список.
Если список получился не пустой, выводим его элементы по одному на строку, если список пуст — пишем, что готовить нечего.

Посмотреть код

Решение

Python
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)
Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Ильгиз
Ильгиз
06.10.2026 14:36

Опять 25… Чекер Яндекса выдаёт ошибку «WA» на 14 тесте, как понять что ему не нравиться в моем решении этой задачи?). Как-то Яндексы не позаботились об этом.

dishes_list = set()
dishes_list_day = set()

for number_dishes in range(int(input())):
  dishes_list.add(input())

for days in range(int(input())):
  for number_dishes_day in range(int(input())):
    dishes_list_day.add(input())

difference = dishes_list ^ dishes_list_day

if difference:
  for dish in sorted(difference):
    print(dish)
else:
  print('Таких нет')
Ильгиз
Ильгиз
Ответить на  Сергей Клочко
06.10.2026 15:41

О! Спасибо за замечание и вашу внимательность. Я лишь исправил print(‘Готовить нечего’) и чекер принял ответ). С этим я согласен «difference = dishes_list — dishes_list_day» — это правильная запись, но чекер не идеальный и принял этот вариант тоже «difference = dishes_list ^ dishes_list_day».

Последний раз редактировалось 8 дней назад Ильгиз ем