69 lines
2.7 KiB
Python
69 lines
2.7 KiB
Python
''' ****** Задание 7 из 20 *********
|
||
* Каждый воспитанник детского сада может любить одну или несколько каш. Воспитателю нужно быстро получить список фамилий тех, кто любит определённый вид каши.
|
||
|
||
Напишите программу, которая по списку учеников и их любимых каш определяет, кто именно любит заданную кашу.
|
||
|
||
Формат ввода
|
||
В первой строке задаётся количество детей в группе (N).
|
||
В следующих N строках записана фамилия ребенка и список его любимых каш.
|
||
В последней строке записана каша, информацию о которой хочет получить воспитатель.
|
||
|
||
Формат вывода
|
||
Фамилии учеников, которые любят заданную кашу, в алфавитном порядке.
|
||
Если таких не окажется, в строке вывода нужно написать «Таких нет».
|
||
|
||
|
||
Подсказка
|
||
При считывании данных удобно воспользоваться распаковкой:
|
||
|
||
|
||
name, *food = input().split()
|
||
Таким образом вы получите имя человека и список его любимых каш. Пройдите по этому списку:
|
||
|
||
если каша раньше не встречалась, запишите её в словарь, а в качестве значения установите список, содержащий текущего ребенка;
|
||
иначе, добавьте текущего ребёнка в уже существующий список.
|
||
Выведите отсортированный список по ключу равному введённой каше.
|
||
|
||
Пример 1
|
||
Ввод
|
||
|
||
5
|
||
Васильев манная
|
||
Петров манная
|
||
Васечкин манная
|
||
Иванов овсяная
|
||
Михайлов овсяная
|
||
манная
|
||
Вывод
|
||
|
||
Васечкин
|
||
Васильев
|
||
Петров
|
||
'''
|
||
|
||
|
||
if __name__ == "__main__":
|
||
total_students = int(input())
|
||
student_records = []
|
||
|
||
for _ in range(total_students):
|
||
record = input().split()
|
||
student_records.append(record)
|
||
|
||
student_records.sort()
|
||
|
||
search_subject = input()
|
||
matching_students_count = 0
|
||
|
||
for student in student_records:
|
||
if search_subject in student[1:]:
|
||
print(student[0])
|
||
matching_students_count += 1
|
||
|
||
if matching_students_count == 0:
|
||
print('Таких нет')
|
||
|
||
|
||
|
||
|