n узлов с номерами от 0 до n - 1, корень — узел 0. Рёбра заданы списком edges: пара [a, b] соединяет узлы a и b. У каждого узла есть вес weights[i].
Поддерево узла — это сам узел и все его потомки. Выберите два поддерева, у которых нет общих узлов, посчитайте сумму весов в каждом и возьмите побитовый XOR этих двух сумм. Верните наибольшее возможное значение.
Если двух непересекающихся поддеревьев выбрать нельзя, верните 0.n=5, edges=[[0, 1], [0, 2], [2, 3], [2, 4]], weights=[1, 9, 4, 2, 3] → 11
Сумма поддерева узла 1 равна 9, поддерева узла 2 — 4 + 2 + 3 = 9; 9 XOR 9 = 0. Лучше взять узлы 1 и 3: 9 XOR 2 = 11, или 1 и 4: 9 XOR 3 = 10. Ответ 11.
n=4, edges=[[0, 1], [1, 2], [2, 3]], weights=[5, 5, 5, 5] → 0
Дерево — цепочка, любые два поддерева вложены одно в другое, поэтому ответ 0.
n=3, edges=[[1, 0], [0, 2]], weights=[10, 6, 1] → 7
n=5, edges=[[0, 1], [0, 2], [2, 3], [2, 4]], weights=[1, 9, 4, 2, 3]
11
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 74 теста на сервере, включая скрытые.