A. Выбор вершин взвешенного дерева
1000 мс · 256 МБ · всё или ничего
В вершинах дерева написаны целые числа. Множество вершин называется допустимым, если никакие две его вершины не соединены ребром. Найдите наибольшую возможную сумму чисел в допустимом множестве.
Жадность здесь не работает - и это стоит понять до того, как писать код. Взять самую большую вершину бывает невыгодно: она может блокировать двух соседей, каждый чуть меньше.
Формат ввода
В первой строке - число ().
В следующих строках - пары и : номер вершины-предка -й вершины и число, записанное в ней. Для корня , для остальных . Числа по модулю не превосходят .
Гарантируется, что задано дерево.
Формат вывода
Одно число - наибольшая сумма чисел в допустимом множестве.
Примеры
ввод
5 0 1 1 2 1 3 2 4 3 5
вывод
10
ввод
6 5 8 6 0 5 -1 1 1 0 3 1 2
вывод
8
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.