Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input()) #количество наследований
- classes = {} # словарь ключ - класс, значение - список предков класса
- class_list = [] #список предков класса наследника
- def get_parent(pareants, child, classes):
- if pareants in classes[child] or pareants == child:
- return True
- else:
- for i in range(len(classes[child])):
- if __rec__(pareants, classes[child][i], classes):
- return True
- else:
- continue
- def __rec__(parents, child, classes):
- if parents in classes[child]:
- return True
- elif len(classes[child]) == 1 and 'object' not in classes[child]:
- child = classes[child][0]
- return __rec__(parents, child, classes)
- elif classes[child] == []:
- return False
- elif len(classes[child]) > 1:
- return get_parent(parents, child, classes)
- for i in range(n):
- input_data_n = input().split()
- len_input_data_n = len(input_data_n)
- if len_input_data_n > 2: #если у класса есть предок
- for j in range(len_input_data_n-2):
- class_list.append(input_data_n[2+j])
- classes[input_data_n[0]] = class_list #добавление списка предков класса в словарь
- class_list = []
- else:
- classes[input_data_n[0]] = [] #предок класс Object
- q = int(input())
- for i in range(q):
- input_data_q = input().split()
- if get_parent(input_data_q[0], input_data_q[1], classes):
- print("Yes")
- else:
- print("No")
Add Comment
Please, Sign In to add comment