Cho định nghĩa một tập class dưới dạng JSON, mỗi class có "name", "parent" (tên class cha, hoặc null nếu là gốc), và "methods" (danh sách tên phương thức mà class đó tự định nghĩa/override).
Với mỗi truy vấn (tên class, tên phương thức), mô phỏng cơ chế tra cứu phương thức theo chuỗi kế thừa (giống prototype chain trong JavaScript): bắt đầu từ class được hỏi, nếu class đó có định nghĩa phương thức thì đó là class cung cấp; nếu không, tiếp tục tìm ở class cha, cho đến khi tìm được hoặc hết chuỗi kế thừa.
Dòng 1: chuỗi JSON là mảng các class, mỗi class dạng {"name":...,"parent":...,"methods":[...]}. Dòng 2: số nguyên n (số truy vấn). n dòng tiếp theo, mỗi dòng dạng "ClassName methodName".
Số class tối đa 20, số truy vấn tối đa 30. Chuỗi kế thừa không có vòng lặp.
In n dòng theo đúng thứ tự truy vấn, mỗi dòng dạng "ClassName.methodName -> ClassCungCap", hoặc "ClassName.methodName -> NOT_FOUND" nếu không lớp nào trong chuỗi kế thừa định nghĩa phương thức đó.
Ví dụ:
Đầu vào:
[{"name":"Vehicle","parent":null,"methods":["describe","move"]},{"name":"Car","parent":"Vehicle","methods":["move"]},{"name":"ElectricCar","parent":"Car","methods":["charge"]}]
4
ElectricCar move
ElectricCar describe
ElectricCar charge
ElectricCar fly
Đầu ra:
ElectricCar.move -> Car
ElectricCar.describe -> Vehicle
ElectricCar.charge -> ElectricCar
ElectricCar.fly -> NOT_FOUND
Đang tải editor...