Задача №115138. Дерево на Манхеттене

Участникам, использующим язык Python3 , рекомендуется отправлять решения на проверку с использованием интерпретатора PyPy3 .

Однажды мальчик Вова нашел корневое дерево\(^\dagger\) из \(n\) вершин, \(i\)-я вершина которого была соединена со своим предком \(p_i\) (\(p_i < i\)) ребром, с записанным на нём числом \(c_i\). Корнем является вершина \(1\). Увидев его, Вова сразу же придумал интереснейшую задачу, которую вам предстоит решить.

Выкладыванием дерева на прямую назовём сопоставление каждой вершине \(v\) целого числа \(x_v\) \((1 \le x_v \le n)\), при котором разным вершинам соответствуют разные числа, а каждое поддерево является последовательным подотрезком.

Проще говоря, выкладывание — это такая перестановка\(^{\ddagger}\) на вершинах, что для любой вершины \(v\), если отсортировать значения \(x_u\) всех вершин \(u\) в поддереве вершины \(v\), то образуется отрезок целых чисел \([l, r]\) для каких-то \(1 \le l \le r \le n\).

Стоимостью выкладывания назовём величину \(\sum_{v=2}^{n} {|x_v - x_{p_v}| \cdot c_v}\).

Посчитайте минимальную стоимость выкладывания для данного вам дерева.

\(^\dagger\) Дерево – это связный неориентированный граф без циклов. Корневое дерево — дерево с выделенной вершиной, которую называют корнем.

\(^\ddagger\) Перестановкой длины \(n\) является массив, состоящий из \(n\) различных целых чисел от \(1\) до \(n\) в произвольном порядке. Например, \([2,3,1,5,4]\) — перестановка, но \([1,2,2]\) не перестановка (\(2\) встречается в массиве дважды) и \([1,3,4]\) тоже не перестановка (\(n=3\), но в массиве встречается \(4\)).

Входные данные

Первая строка содержит одно целое число \(n\) (\(2 \le n \le 5000\)) — количество вершин в дереве.

Затем следуют \(n - 1\) строк, \(i\)-я из которых содержит два целых числа \(p_{i+1}\) и \(c_{i+1}\) \((1 \le p_{i+1} \le i, 0 \le c_{i+1} \le 10^{11})\) — предок \((i+1)\)-й вершины и число, записанное на ребре из \(i+1\) в \(p_{i+1}\).

Выходные данные

В единственной строке выведите одно число — минимальную стоимость выкладывания данного вам дерева.

Примечание

Можно показать, что добиться на первом тесте из условия стоимости выкладывания меньше, чем 21 нельзя. Данная стоимость получается с помощью выкладывания \(x = \{4, 3, 5, 2, 1\}\).

Аналогично, для второго теста стоимости выкладывания меньше, чем 56 получить нельзя. Пример выкладывания с данной стоимостью \(x = \{6, 5, 7, 1, 4, 3, 8, 2\}\).

Система оценки

Тесты к этой задаче состоят из 6 групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, прохождение тестов из условия не требуется для некоторых групп. Обозначим через \(d_i\)  — количество сыновей вершины \(i\), то есть количество вершин \(v\) таких что \(p_v = i\).

Доп. ограничения
Группа Баллы \(n\) \(c_i\) \(d_i\) Необх. группы Комментарий
0 0 Тесты из условия.
1 8 \(n \le 8\) 0
2 13 \(n \le 50\) \(d_i \le 8\) 0 – 1
3 17 \(n \le 50\) \(d_i \le 20\) 0 – 2
4 23 \(n \le 50\) 0 – 3
5 19 \(c_i = 1\)
6 20 0 – 5
Примеры
Входные данные
5
1 6
1 5
2 4
2 3
Выходные данные
21
Входные данные
8
1 6
1 9
2 2
2 9
5 4
3 9
6 11
Выходные данные
56
Сдать: для сдачи задач необходимо войти в систему