#arc162d. [arc162_d]Smallest Vertices

[arc162_d]Smallest Vertices

問題文

この問題では、根付き有向木と言った際には全ての辺が根から葉の方向に向き付けられた根付き木を指すものとします。

総和が N1N-1 であるような非負整数列 d=(d1,d2,ldots,dN)d=(d_1,d_2,\\ldots,d_N) が与えられます。

頂点に 11 から NN の番号がついた、頂点 11 を根とする NN 頂点の根付き有向木のうち、以下の条件を満たすものを良い木と呼びます。

  • 頂点 i(1leqileqN)i\\ (1\\leq i \\leq N) の出次数は did_i

さらに、良い木の頂点 vv に対して、 f(v)f(v) を「頂点 vv の部分木に含まれる頂点(vv 含む)の頂点番号の最小値」と定め、f(v)=vf(v)=v を満たす頂点を良い頂点と呼びます。

良い木全てに対する良い頂点の個数の総和を 998244353998244353 で割ったあまりを求めてください。

制約

  • 2leqNleq5002 \\leq N \\leq 500
  • 0leqdileqN10 \\leq d_i \\leq N-1
  • d1geq1d_1 \\geq 1
  • sumi=1Ndi=N1\\sum_{i=1}^N d_i = N-1
  • 入力される数値は全て整数

入力

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

NN d1d_1 d2d_2 ldots\\ldots dNd_N

出力

答えを出力せよ。


入力例 1

4
2 0 1 0

出力例 1

7

良い木は以下の 22 通りあります。青く塗られた頂点は良い頂点です。

それぞれについて良い頂点は 44 個、 33 個なので答えは 77 です。


入力例 2

10
3 1 0 0 2 0 1 2 0 0

出力例 2

37542