Вернёмся к условию, когда каждый воспитанник детского сада любит либо манную, либо овсяную, либо обе эти каши.
Напишите программу, которая позволит воспитателю узнать, какие дети любят только одну кашу.
Формат ввода
В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M).
Затем идут N+M строк — перемешанные фамилии детей.
Гарантируется, что в группе нет однофамильцев.
Формат вывода:
В алфавитном порядке фамилии учеников, которые любят только одну кашу.
Если таких не окажется, в строке вывода нужно написать «Таких нет».
Пример
Ввод
3
2
Васильев
Петров
Васечкин
Иванов
Михайлов
Вывод
Васечкин
Васильев
Иванов
Михайлов
Петров
Ввод
3
3
Иванов
Петров
Васечкин
Иванов
Петров
Васечкин
Вывод
Таких нет
Решение
Изменение относительно предыдущей задачи ровно одно – нам нужно вывести не количество детей, а их фамилии в алфавитном порядке.
Это значит, что нам достаточно изменить блок вывода данных в любом из используемых вариантов. Поэтому я привожу здесь только одно, классическое решение с помощью двух множеств.
Посмотреть код
Решение
# Фильтрация фамилий
list1size = int(input())
list2size = int(input())
list1 = set()
list2 = set()
for _ in range(list1size + list2size):
eater = input()
if eater in list1:
list2.add(eater)
else:
list1.add(eater)
# print(list1, list2)
if len(junction := (list1 ^ list2)) != 0:
for eater in sorted(junction):
print(eater)
else:
print('Таких нет')