#arc108e. [arc108_e]Random IS
[arc108_e]Random IS
题目描述
有 把椅子按从左到右排列,每把椅子从左起编号为 。保证 是不同的。
Snuke 决定标记其中一些椅子,并扔掉其他椅子。初始时,没有椅子被标记。如果标记的椅子的编号从左到右是单调递增的,我们称该选择为“好的”。
Snuke 决定按照以下步骤标记椅子:
- 如果椅子 是“好的”,也就是当 被标记后选择仍然是好的选择,则将椅子 标记为“好的”。设当前好椅子的数量为 。
- 如果 ,则移除未标记的椅子并结束过程。否则,从 个好椅子中等概率选择一个进行标记,然后返回步骤 1。
可以证明,在过程结束时剩余的椅子数量的期望是一个有理数。设这个期望值为 ,其中 和 互质。另外,设 。我们可以证明,存在一个介于 和 (包含)之间的整数 ,满足 ,且 等于 ,其中 是 的模逆元。求 的值。
约束条件
- 输入中的所有值都是整数。
- 是不同的。
输入
从标准输入读入输入数据的格式如下:
输出
输出 。
示例输入 1
3
3 1 2
示例输出 1
666666673
- 如果首先标记椅子 (编号为 的椅子),则最后剩下两把椅子:椅子 和椅子 。
- 如果首先标记椅子 ,则最后剩下两把椅子:椅子 和椅子 。
- 如果首先标记椅子 ,则最后剩下一把椅子:椅子 。
- 由于选择椅子的概率相等,最后剩余椅子的数量的期望值为 。我们有 ,因此 。
示例输入 2
30
26 16 28 30 23 11 29 18 22 15 20 13 27 9 21 7 5 25 4 19 8 3 1 24 10 14 17 12 2 6
示例输出 2
297703424