atcoder#DPJ. Sushi

Sushi

配点 : 100100

問題文

NN 枚の皿があります。 皿には 1,2,,N1, 2, \ldots, N と番号が振られています。 最初、各 ii (1iN1 \leq i \leq N) について、皿 ii には aia_i (1ai3)1 \leq a_i \leq 3) 個の寿司が置かれています。

すべての寿司が無くなるまで、太郎君は次の操作を繰り返し行います。

  • 1,2,,N1, 2, \ldots, N の目が等確率で出るサイコロを振り、出目を ii とする。 皿 ii に寿司がある場合、皿 ii の寿司を 11 個食べる。 皿 ii に寿司が無い場合、何も行わない。

すべての寿司が無くなるまでの操作回数の期待値を求めてください。

制約

  • 入力はすべて整数である。
  • 1N3001 \leq N \leq 300
  • 1ai31 \leq a_i \leq 3

入力

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

NN

a1a_1 a2a_2 \ldots aNa_N

出力

すべての寿司が無くなるまでの操作回数の期待値を出力せよ。 相対誤差が 10910^{-9} 以下ならば正解となる。

3
1 1 1
5.5

11 個目の寿司を食べるまでの操作回数の期待値は 11 です。 その後、22 個目の寿司を食べるまでの操作回数の期待値は 1.51.5 です。 その後、33 個目の寿司を食べるまでの操作回数の期待値は 33 です。 よって、全体の操作回数の期待値は 1+1.5+3=5.51 + 1.5 + 3 = 5.5 です。

1
3
3

例えば、3.00, 3.000000003, 2.999999997 などを出力しても正解となります。

2
1 2
4.5
10
1 3 2 3 3 2 3 2 1 3
54.48064457488221