EduBrick

A. Выбор вершин взвешенного дерева

1000 мс · 256 МБ · всё или ничего

В вершинах дерева написаны целые числа. Множество вершин называется допустимым, если никакие две его вершины не соединены ребром. Найдите наибольшую возможную сумму чисел в допустимом множестве.

Жадность здесь не работает - и это стоит понять до того, как писать код. Взять самую большую вершину бывает невыгодно: она может блокировать двух соседей, каждый чуть меньше.

Формат ввода

В первой строке - число nn (1≤n≤1001 \le n \le 100).

В следующих nn строках - пары pip_i и qiq_i: номер вершины-предка ii-й вершины и число, записанное в ней. Для корня pi=0p_i = 0, для остальных 1≤pi≤n1 \le p_i \le n. Числа qiq_i по модулю не превосходят 10 00010\,000.

Гарантируется, что задано дерево.

Формат вывода

Одно число - наибольшая сумма чисел в допустимом множестве.

Примеры

ввод
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
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.