AT_agc063_e [AGC063E] Child to Parent
Description
[problemUrl]: https://atcoder.jp/contests/agc063/tasks/agc063_e
頂点に $ 1 $ から $ N $ の番号がついた $ N $ 頂点の根付き木があります.頂点 $ 1 $ が根であり,頂点 $ i $ ($ 2\leq\ i\leq\ N $) の親は $ P_i $ です.
非負整数 $ r $ および非負整数列 $ A\ =\ (A_1,\ \ldots,\ A_N) $ が与えられます.あなたはこの数列に対して,次の操作を何度でも行うことができます($ 0 $ 回でもよい):
- $ i\geq\ 2 $ かつ $ A_i\ \geq\ 1 $ となる $ i $ をひとつ選ぶ.$ A_i $ を $ A_i\ -\ 1 $ に,$ A_{P_i} $ を $ A_{P_i}+r $ に置き換える.
最終的な非負整数列 $ A $ としてありうるものの個数を $ 998244353 $ で割った余りを求めてください.
Input Format
入力は以下の形式で標準入力から与えられます.
> $ N $ $ P_2 $ $ \ldots $ $ P_N $ $ r $ $ A_1 $ $ \ldots $ $ A_N $
Output Format
最終的な非負整数列 $ A $ としてありうるものの個数を $ 998244353 $ で割った余りを出力してください.
Explanation/Hint
### 制約
- $ 2\leq\ N\leq\ 300 $
- $ 1\leq\ P_i\ \leq\ i\ -\ 1 $ ($ 2\leq\ i\leq\ N $)
- $ 0\leq\ r\ \leq\ 10^9 $
- $ 0\leq\ A_i\ \leq\ 10^9 $
### Sample Explanation 1
最終的な $ A $ としてありうるのは次の $ 4 $ 個です:$ (1,1,1) $, $ (3,0,1) $, $ (3,1,0) $, $ (5,0,0) $.
### Sample Explanation 2
最終的な $ A $ としてありうるのは次の $ 5 $ 個です:$ (1,1,1) $, $ (1,2,0) $, $ (2,0,1) $, $ (2,1,0) $, $ (3,0,0) $.
### Sample Explanation 3
最終的な $ A $ としてありうるのは次の $ 6 $ 個です:$ (1,1,1) $, $ (1,3,0) $, $ (3,0,1) $, $ (3,2,0) $, $ (5,1,0) $, $ (7,0,0) $.