Сделал 5 задание
This commit is contained in:
parent
e6d23573cf
commit
82af5281a1
74
lesson.5.py
Normal file
74
lesson.5.py
Normal 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 'Таких нет')
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue