#jag2017summerday1c. [jag2017summer_day1_c]すごろく
[jag2017summer_day1_c]すごろく
问题文
黑猫小S在玩骰子游戏。
在这个游戏中,他使用的是一个特殊的骰子。这个骰子有 个面,每个面的概率相同,都会出现。第 个面上写着整数 ,当掷出这个面时,他会前进正好 个格子。
另一方面,游戏板不太特殊。共有 个格子排成一行,第一个格子是起点,第 个格子是终点。第 个格子上写着整数 ,如果停在这个格子上,则根据 的值会有以下效果:
- 如果 :前进正好 个格子。但是,不会受到前进后格子上的效果。
- 如果 :休息 回合。
那么,小S到达终点所需要的平均回合数是多少呢?
注意,如果小S超过终点继续前进,也会被视为到达终点。
约束条件
输入
输入以以下格式从标准输入中给出。
输出
输出小S到达终点所需要的平均回合数。只需要输出结果,不需要输出单位。
输入例子 1
3 4
1 2 3
0 1 -1 0
输出例子 1
2.00000000000000000000
根据每个回合掷出的点数分别考虑,结果如下:
- 点数为 :前进 个格子,停在第 个格子。根据该格子的效果,继续前进到第 个格子。下一回合无论掷出多少点都可以到达终点,因此总共需要 回合。
- 点数为 :前进 个格子,停在第 个格子。根据该格子的效果,休息 回合。下一回合休息,再下一回合无论掷出多少点都可以到达终点,因此总共需要 回合。
- 点数为 :前进 个格子,停在第 个格子。换言之,只需要 回合就可以到达终点。
因此,平均回合数为 。
输入例子 2
1 10
1
0 0 0 0 0 0 0 0 0 0
输出例子 2
9.00000000000000177636
输入例子 3
5 6
1 1 2 3 5
0 0 6 -10 1 0
输出例子 3
4.47999999999999953815