Coding is the closest thing we have to superpower !
描述
给定一棵n个结点的树,以1为根,每个点有点权a_i,每条边有边权。
假如u的子树中存在一个点v,使得 dist(u, v) \gt a_v,则称u是悲伤的。
dist(u,v)表示u到v的路径上的边权之和, a_v 是v的点权。
每次操作可以删掉一个叶子节点,问至少操作几次使得所有的节点都不再悲伤。
输入
第一行输入一个整数 n (1 \le n \le 2*10^5)。
第二行输入n个整数a_1, a_2, …, a_n (1 \le a_i \le 10^9),表示每个点的点权。
接下来n−1行每行两个整数 p_i (1 \le p_i \le i + 1), c_i (-10^9 \le c_i \le 10^9)表示 i + 1 (1 \le i \lt n)与p_i之间有一条边权为c_i的边。
输出
输出最少的操作步数。
样例
输入
9 88 22 83 14 95 91 98 53 11 3 24 7 -8 1 67 1 64 9 65 5 12 6 -80 3 8
输出
5
标签