#dpj. [dp_j]Sushi

[dp_j]Sushi

题目描述

NN 盘寿司,编号为 1,2,ldots,N1, 2, \\ldots, N。最初,对于每个 ii (1leqileqN1 \\leq i \\leq N),盘子 ii 上有 aia_i (1leqaileq31 \\leq a_i \\leq 3) 片寿司。

Taro 将按照以下操作重复进行,直到所有寿司都被吃完:

  • 掷一个六面骰子,出现的数字是 1,2,ldots,N1, 2, \\ldots, N,概率相等,并设结果为 ii。如果盘子 ii 上有寿司,就吃掉一片;如果没有,则不做任何操作。

找出在所有寿司都被吃完之前进行的操作次数的期望值。

约束条件

  • 输入中的所有值都是整数。
  • 1leqNleq3001 \\leq N \\leq 300
  • 1leqaileq31 \\leq a_i \\leq 3

输入

输入将从标准输入读取,并具有以下格式:

NN a1a_1 a2a_2 ldots\\ldots aNa_N

输出

打印在所有寿司都被吃完之前进行的操作次数的期望值。当相对差不大于 10910^{-9} 时,输出被认为是正确的。


示例输入1

3
1 1 1

示例输出1

5.5

在吃掉第一片寿司之前,操作的期望次数是 11。之后,在吃掉第二片寿司之前,操作的期望次数是 1.51.5。然后,在吃掉第三片寿司之前,操作的期望次数是 33。因此,总的操作次数的期望值是 1+1.5+3=5.51 + 1.5 + 3 = 5.5


示例输入2

1
3

示例输出2

3

3.003.0000000032.999999997 等输出也被认为是正确的。


示例输入3

2
1 2

示例输出3

4.5

示例输入4

10
1 3 2 3 3 2 3 2 1 3

示例输出4

54.48064457488221