#ASAPORO2F. Unicyclic Graph Counting

Unicyclic Graph Counting

配点 : 10001000

問題文

すぬけくんは以下のような問題を考えました。

長さ NN の数列 dd が与えられます。 以下の条件を満たす頂点に 1,2,...,N1,2,...,N のラベルがついた NN 頂点の無向グラフの数を modulo 109+710^{9} + 7 で求めてください。

  • グラフは単純かつ連結
  • 頂点 ii の次数は did_i

** 2 \leq N, 1 \leq d_i \leq N-1, {\rm Σ} d_i = 2(N-1) を満たす場合** には、この問題の答えは $\frac{(N-2)!}{(d_{1} -1)!(d_{2} - 1)! ... (d_{N}-1)!}$ で表せることが証明できます。

すぬけくんは 3 \leq N, 1 \leq d_i \leq N-1, { \rm Σ} d_i = 2N を満たす場合 どうなるかが気になっています。 すぬけくんの代わりにこの問題を解いてください。

制約

  • 3N3003 \leq N \leq 300
  • 1diN11 \leq d_i \leq N-1
  • di=2N{ \rm \sum } d_i = 2N

部分点

  • 200200 点分のデータセットでは N5N \leq 5 が成立する
  • 別の 200200 点分のデータセットでは N18N \leq 18 が成立する
  • 別の 300300 点分のデータセットでは N50N \leq 50 が成立する

入力

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

NN

d1d_1 d2d_2 ...... dNd_{N}

出力

答えを出力せよ。

5
1 2 2 3 2
6
  • 以下の図に示されるような 66 通りです

51367cdb21c64bfb07113b300921d52c.png

16
2 1 3 1 2 1 4 1 1 2 1 1 3 2 4 3
555275958
  • 109+710^{9} + 7 で割ったあまりを求めてください