eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Биочипы

Биочипы

Ученные нашли биочип, который при определенных условиях делится на несколько новых биочипов. При этом биочип-родитель прекращает свое существование. Биочипы-потомки обладают каждый своим объемом памяти. Далее биочип можно или использовать (запретив дальнейшее деление), или он будет делиться дальше по заранее известной схеме.

Ученые составили древовидные схемы деления для разных биочипов и точно знают структуру дерева из n элементов, включая объем памяти каждого из потенциальных потомков. Им нужна программа, которая выберет из этого дерева ровно m биочипов, суммарный объем памяти которых максимален. Обратите внимание, что если мы выбираем какой-то биочип, то ни один из его предков или потомков быть выбран не может.

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

В первой строке находятся два целых числа n и m - количество элементов дерева и количество выбираемых биочипов (1n200 000, 1m500).

Следующие n строк содержат по два неотрицательных целых числа, разделенных пробелом: номер родителя в дереве и размер собственной памяти x (1x1000). Каждый биочип идентифицируется числом между 1 и n включительно, i-ая строка содержит информацию о биочипе с номером i - 1. Ровно один биочип не имеет родителя, в качестве номера его родителя записан 0.

Входные данные таковы, что m биочипов выбрать можно.

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

Вывести одно целое число - максимально возможный объем памяти, выбранных m биочипов.

Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
7 3
2 100
0 1000
2 150
3 100
3 5
5 100
2 50
Вихідні дані #1
300
Джерело 2012 VIII Жаутыковская олимпиада Алматы, Казахстан, 17 января