atcoder#NIKKEI20192QUALB. Counting of Trees

Counting of Trees

配点 : 300300

問題文

NN 要素からなる整数列 D1,...,DND_1,...,D_N が与えられます。頂点に 11 から NN の番号が付けられた NN 頂点からなる木であって、 以下の条件をみたすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • 11 以上 NN 以下の任意の整数 ii に対して、頂点 11 と頂点 ii の距離が DiD_i である。

注記

  • NN 頂点の木とは NN 頂点 N1N-1 辺からなる連結無向グラフのことであり、22 頂点の距離とは一方から他方への最短路に用いられる辺の個数を指します。
  • 22 つの木が異なるとは、ある 22 頂点 xx, yy が存在して、xxyy の間に一方の木では辺が存在し、 もう一方の木では辺が存在しないことを指します。

制約

  • 1N1051 \leq N \leq 10^5
  • 0DiN10 \leq D_i \leq N-1

入力

入力は以下の形式で標準入力から与えられる。

NN

D1D_1 D2D_2 ...... DND_N

出力

答えを出力せよ。

4
0 1 1 2
2

例えば、(1,2)(1,2), (1,3)(1,3), (2,4)(2,4) の間に辺があるような木が条件をみたします。

4
1 1 1 1
0
7
0 3 2 1 2 2 1
24