#Lutece2960. 树上计数

树上计数

Migrated from Lutece 2960 树上计数

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

给定一棵 nn 个结点的有根树和整数 kk,每个点有一个非负点权 aia_i,对于树上每一个点 uuuu 为这个点的编号),求满足 lca(x,y)=u\text{lca}(x,y)=u(ax+ay+u)0modk(a_x+a_y+u)\equiv 0\bmod k 的无序对 (x,y)(x,y) 数量。 此处 lca(x,y)=u\text{lca}(x,y)=u 表示 xxyy的最近公共祖先为uu。 编号从 00 开始,树的根为 00 号点。

Input

第一行两个整数 n,kn,k,含义与题面相同。 第二行 nn 个整数,第 ii 个整数表示第 i1i-1 号点的权值。 第三行 n1n-1 个整数,第 ii 个数表示第 ii 号点的父结点的编号。

Output

nn 个整数,第 i+1i+1 (0i<n)(0 \leq i < n) 个数表示有多少个无序对 (x,y)(x,y),满足它们的最近公共祖先是 ii,并且它们的点权之和加上 ii 的编号能够被 kk 整除。

Samples

6 2
0 1 0 1 0 1
0 0 1 1 2
6 2 1 0 1 0

Constraints

1n1061 \leq n \leq 10^6 1k1061 \leq k \leq 10^6 0ai<k0 \leq a_i <k

Note

对于 00 号点,满足的 (x,y)(x,y) 有:(0,0),(0,2),(0,4),(2,4),(1,5),(3,5)(0,0),(0,2),(0,4),(2,4),(1,5),(3,5)

由于数据较大,请注意读入方式。

提交的题解需要说明你的做法的复杂度。

Resources

2023 UESTC ICPC Training for Graph