n вершин с номерами от 0 до n - 1, корень — вершина 0. Родитель вершины i — parent[i] (у корня parent[0] = -1), вес вершины — weight[i] (может быть отрицательным).
Весом поддерева назовём сумму весов всех его вершин. Срежьте каждое поддерево, вес которого равен нулю, — вместе со всеми его вершинами.
Верните, сколько вершин останется в дереве.n=6, parent=[-1, 0, 0, 1, 1, 2], weight=[5, 3, 2, -1, -2, 1] → 3
Поддерево вершины 1 весит 3 - 1 - 2 = 0 и удаляется вместе с вершинами 3 и 4. Остаются вершины 0, 2 и 5 (их поддеревья весят 8 и 3).
n=4, parent=[-1, 0, 1, 1], weight=[2, -4, 1, 1] → 0
Сумма всего дерева 2 - 4 + 1 + 1 = 0 — удаляется всё дерево.
n=3, parent=[-1, 0, 0], weight=[0, 4, 7] → 3
Вес самой вершины 0 равен нулю, но важна сумма поддерева: 11. Ничего не удаляется.
parent задаёт корректное дерево с корнем 0n=6, parent=[-1, 0, 0, 1, 1, 2], weight=[5, 3, 2, -1, -2, 1]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 77 тестов на сервере, включая скрытые.