题号:NC229893
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
你有一棵

个点的树,每个点的点权可能是

,初始均为

,每条边均有一个正整数边权。现在你能进行两种操作:
1. 将一个度小于

且权为

的点点权变为

。该操作没有消耗。
2. 使一个点权为

的点点权变为

,并且让一个与其通过一条边连接,且点权

的点点权

。该操作的消耗为对应边边权。
对于每个点,求出让其点权变为

的最小消耗。如果不可能做到,输出

。
输入描述:
第一行,一个正整数
表示点数。
接下来

行,每行三个正整数

,表示

和

之间有一条权值为

的边连接。(

)
对于

的数据,

。
输出描述:
一行
个整数,第
个数表示让
号节点的点权变为
的最小消耗。
示例1
输入
复制
5
1 2 1
1 3 2
2 4 3
2 5 4
示例2
输入
复制
6
1 2 3
2 3 4
3 4 5
4 5 1
4 6 2