Coding is the closest thing we have to superpower !

3600 : 树进阶-子树控制
描述

给定一棵n个结点的树,以1为根,每个点有点权a_i​,每条边有边权。

假如u的子树中存在一个点v (u \ne v),使得dist(u, v)<=a_v,则称u控制v。

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 (1 \le c_i \le 10^9)表示i + 1 (1 \le i \lt n)p_i​之间有一条边权为c_i​的边。

输出

输出n个整数,第i个整数表示i节点控制的点的数量。

样例

输入

5
2 5 1 4 6
1 7
1 1
3 5
3 6

输出

1 0 1 0 0
标签
语言:
主题: