A67280.打工
普及+/提高
通过率:0%
时间限制:4.00s
内存限制:1024MB
题目描述
Alice 学校附近的地图可以看作一棵有 n 个结点的树,通过树的每条边需要消耗 1 单位时间。Alice 的学校位于树的根结点处,编号为 1。树的一些结点是打工地点,共有 m 个。在每个打工地点,Alice 可以打工 w 单位时间,获得 v 的报酬,每个打工地点只能打工一次。请帮助 Alice 算一算,如果她从学校出发,最终回到学校,在 W 单位时间内最多能赚多少钱。
输入格式
第一行包含三个正整数 n, m 和 W ,其含义见题目描述。
用例的第二行包含 n−1 个正整数 a2,a3,…,an ,其中 ai 表示节点 i 的父节点是 ai。
用例的接下来 m 行,每行包含三个正整数 uj, wj 和 vj ,表示第 j 个打工地点在结点 uj,耗时 wj,报酬 vj。数据保证,所有打工地点的结点编号互不相同。
输出格式
对于每个测试用例,输出的唯一一行包含一个整数,表示 Alice 最多能赚多少钱。
输入输出样例
输入#1
7 3 10 1 1 2 2 3 3 4 1 1 6 1 2 7 1 3
输出#1
5
输入#2
7 3 7 1 1 2 2 3 3 4 1 1 6 1 2 7 1 3
输出#2
3
说明/提示
数据范围
- 1≤n≤5×105,1≤m≤min(103,n),1≤W≤103
- 1≤ai<i,1≤i≤n
- 1≤uj≤n,1≤wj≤103,1≤vj≤103, 1≤j≤m