eolymp
bolt
Try our new interface for solving problems
Problems

Реки

Реки

Time limit 1 second
Memory limit 64 MiB

Почти все Королевство Байтленд покрыто лесами и реками. Малые реки сливаются в более крупные реки, которые, в свою очередь, сливаются друг с другом; в конечном счете, все реки сливаются вместе в одну большую реку. Большая река впадает в море вблизи города Байттаун.

В Байтленде имеется n лесозаготовительных поселков, каждый из которых расположен вблизи какой-либо реки. В настоящее время в Байттауне находится большая пилорама, которая обрабатывает все деревья, срубленные в Королевстве. Деревья сплавляются вниз по рекам от поселков, где они срублены, к пилораме в Байттауне. Король Байтленда решил поставить k дополнительных пилорам в поселках, чтобы уменьшить стоимость сплава деревьев. После установки пилорам деревья не обязательно должны сплавляться в Байттаун, а могут быть обработаны на ближайшей пилораме, находящейся ниже по течению рек. Очевидно, что деревья, срубленные в окрестности поселка с пилорамой, вообще не сплавляются по рекам.

Необходимо отметить, что реки в Байтленде не разветвляются. Из этого следует, что для каждого поселка существует единственный путь сплава деревьев вниз по течению рек от него в Байттаун.

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

Напишите программу, которая:

  • читает из стандартного ввода количество поселков, количество дополнительных пилорам, которые будут установлены, количество срубленных в каждом поселке деревьев и описание рек,

  • вычисляет минимальную стоимость сплава деревьев после установки дополнительных пилорам,

  • выводит результат в стандарный вывод.

Input data

Первая строка входных данных содержит два целых числа: n — количество поселков, не считая Байттауна (2 n100), и k — количество дополнительных пилорам, которые будут установлены (1k50 и kn ). Поселки нумеруются числами 1, 2, ..., n, а Байттаун имеет номер 0.

Каждая из последующих n строк содержит три целых числа, разделенных одним пробелом. Строка i+1 содержит:

  • w_i — количество деревьев, срубаемых в поселке i за год (0w_i10000),

  • v_i — ближайший поселок (либо Байттаун) вниз по реке от поселка i (0v_in ),

  • d_i — расстояние (в километрах) по реке от поселка i до поселка v_i (1d_i10000).

Гарантируется, что суммарная стоимость сплава всех деревьев к пилораме в Байттауне не превосходит 2000000000 центов в год.

Output data

Первая и единственная строка выходных данных должна содержать одно целое число: минимальную стоимость сплава (в центах).

Рисунок сверху иллюстрирует входные данные примера. Номера поселков указаны внутри кругов. Числа под кругами обозначают количество деревьев, срубаемых вблизи данного поселка. Числа над стрелками указывают длины рек.

Пилорамы должны быть установлены в поселках 2 и 3.