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

This commit is contained in:
parent e6d23573cf
commit 82af5281a1

74
lesson.5.py Normal file
View file

@ -0,0 +1,74 @@
''' ****** Задание 5 из 20 *********
* После статистики по «любителям обеих каш» воспитателю захотелось знать другое: сколько детей любят только одну кашу — либо манную, либо овсяную, но не обе сразу.
Это поможет спланировать меню так, чтобы угодить каждому!
Формат ввода
В первых двух строках указывается количество детей, любящих манную и овсяную каши (
N
N и
M
M).
Затем идут
N
+
M
N+M строк — перемешанные фамилии детей.
Гарантируется, что в группе нет однофамильцев.
Формат вывода
Количество учеников, которые любят только одну кашу.
Если таких не окажется, в строке вывода нужно написать «Таких нет».
Подсказка
Для начала считайте данные. Заметьте, что если фамилия встречается в списке 2 раза - этот человек любит обе каши.
Для разнообразия рассмотрим математический подход к решению:
Для вычисления ответа нам нужно вычислить размер симметричной разности двух множеств:
∣A△B∣=∣A∪B∣−∣A∩B∣
В свою очередь, прибегнув к формуле включений-исключений:
∣A∪B∣=∣A∣+∣B∣−∣A∩B∣
Таким образом получаем:
∣A△B∣=∣A∣+∣B∣−2⋅∣A∩B∣
гдe ∣A∣ - количество детей, любящих манную кашу (N),∣B∣ - любящих овсянную кашу (M), а ∣A∩B∣ - обе каши (вычисляется при считывании данных).
Пример 1
Ввод
3
2
Васильев
Петров
Васечкин
Иванов
Михайлов
Вывод
5
'''
if __name__ == "__main__":
num_first_group = int(input())
num_second_group = int(input())
all_names = []
for person_index in range(num_first_group + num_second_group):
person_name = input()
all_names.append(person_name)
unique_names_count = len([
name for name in all_names
if all_names.count(name) == 1
])
print(unique_names_count if unique_names_count else 'Таких нет')