#fukasugoroku. [fuka_sugoroku]すごろく
[fuka_sugoroku]すごろく
描述
F正在尝试以单人游玩骰子棋的方式使用一个6面骰子前进。
骰子棋盘上的格子有"前进x格"和"回到起点"两种效果,如果停在其中一个格子上,就必须按照指示移动。根据格子的效果移动后,如果又停在了有效果的格子上,就继续按指示移动。
因为F很懒,实际上他觉得玩骰子棋很麻烦。所以他决定求解掷骰子到达终点的期望次数。
输入
输入包含多个测试用例。输入以包含唯一的0的行表示结束。每个测试用例按以下格式给出。
测试用例的第一行包含骰子棋盘的格子数。格子从1到编号。起点是第1个格子,然后依次是第2个格子,第3个格子,...,第个格子,终点是第个格子。在第个格子掷骰子结果为时,移动到第个格子。如果,则视为到达终点。
测试用例的第二行包含个整数,表示在第个格子上的指示。如果 表示"回到起点",如果 表示"前进格",如果 则该格子没有效果。
保证, 为0。给定的骰子棋盘是可到达终点的,并且保证掷骰子次数的期望不会超过。保证测试用例数不超过300个,并且每个文件中的总和不超过500,000。
输出
对于每个测试用例,输出掷骰子次数的期望值,每个结果占一行。允许的误差范围为绝对误差或相对误差不超过。
示例输入
2
0 0
7
0 -1 -1 -1 -1 -1 0
7
0 0 0 0 0 0 0
7
0 5 4 3 2 1 0
8
0 -1 -1 -1 0 -1 -1 0
0
示例输出
1.00000000
6.00000000
2.16139403
1.00000000
10.50000000