Транспортная компания для перевозки грузов своих клиентов хочет сначала собрать их все в одну точку. Склады клиентов расположены в пределах города, дороги доступные грузовику, в котором представляют собой дерево, т.е. существует ровно один путь из заданной точки в любую другую. Для перевозки грузов компания использует один десятитонный грузовик. Грузы могут перевозиться по частям, но выгружать их можно только на складе компании (узел 1). Задача состоит в том, чтобы собрать все грузы, проездив как можно меньшее расстояние. Имя программы cargo.pas.
Пусть в городе есть n точек, тогда даны n-1 массы грузов в складах на точках 2..n и n-1 расстояние между парами точек.
Входной файл cargo.dat в первой строке содержит число n. Со второй строки по n-ю идут массы грузов на складах клиентов в точках 2..n. Далее идут n-1 ребер дерева дорог в городе - по одному ребру на строку в виде i j d - первая точка, вторая точка и расстояние. Массы и расстояния - целые числа.
Выходной файл cargo.sol в первой строке содержит общую длину маршрута. Начиная со второй строки идут точки, в которых грузовик загружает товары и массу, которую он при этом забирает. Когда грузовик разгружается на складе транспортной компании вместо двух чисел идет только "1".