Помогите прошу очень надо
Родословная Кнопочки Кнопочка ведёт свою родословную. Так как у неё нет удобного и наглядного редактора для редактирования и хранения бинарных деревьев (Дерево как структура данных), то она выбрала простой способ записи для наследования - в текстовом редакторе построчно просто указывает пары: родитель дитя. Кнопочка хочет узнать насколько глубоко ей удалось построить свою родословную. По текстовому файлу это сделать затруднительно. Напишите программу, которая подсчитает глубину дерева родословной Кнопочки. Гарантируется, что у всех родственников уникальные имена и у Кнопочки есть хотя бы один родитель. Глубиной дерева будем считать максимальное количество поколений, включая и поколение Кнопочки. Количество пар "родитель-дитя" в данной задаче не может быть более 1000. Например, для рис."a" - ответ 3, а для рис."б" - ответ 2. На вход подаются: в первой строке целое число N - количество пар "родитель-дитя", в последующих N строках пары имён, написанные через пробел. На выход подайте одно целое число - глубину дерева родословной. Sample Input 1: 4 Арсен Кнопочка Вера Кнопочка Cеня Bера Алла Вера Sample Output 1: 3 Sample Input 2: 1 Вера Кнопочка Sample Output 2: 2
Я конечно все понимаю, но это предоставлено как то непонятно
def find_depth(relatives_dict, parent):
if parent not in relatives_dict:
return 1
max_depth = 1
for child in relatives_dict[parent]:
max_depth = max(max_depth, find_depth(relatives_dict, child) + 1)
return max_depth
n = int(input())
relatives_dict = {}
for i in range(n):
parent, child = input().split()
if parent not in relatives_dict:
relatives_dict[parent] = []
relatives_dict[parent].append(child)
max_depth = find_depth(relatives_dict, "Кнопочка")
print(max_depth)
input: 3
Арсен Кнопочка
Вера Кнопочка
Сеня Кнопочка
output: 4
input: 2
Вера Кнопочка
Люська Вера
output: 2
че...
Ну тут хз