Time Limit: 5 sec / Memory Limit: 128 MB
Description
Fは6面ダイスを1個使って進むすごろくに一人で挑戦しようとしている.
すごろくのマスの中には「○マス進む」と「振り出しに戻る」が存在し,そこに止まってしまうと,必ず指示された通りに移動しなければならない.マスの効果で移動した結果,再び効果のあるマスに止まった場合は,続けて指示通りに移動する.
Fはものぐさなので,実際にすごろくを遊ぶのはめんどくさくなってしまった.そこで,ゴールまでのダイスを振る回数の期待値を求めることにした.
Input
入力は複数のテストケースからなる.入力の終わりは1つの0のみを含んだ行で示される.各テストケースは以下の形式で与えられる.
n x_1 x_2 … x_n
- 1≦n≦500,000
- -1≦x_i≦n-i
- x_1,x_n=0
テストケースの1行目には,すごろくのマスの数nが書かれている.マスには1番からn番までの番号がふられている.スタートのマスが1番で,それからスタートに近い順に2番,3番,…,n-1番と続き,ゴールのマスがn番である.i番のマスでサイコロを振ってjの目が出たら,i+j番のマスへ移動する.もしもi+jがn以上である場合,ゴールしたとみなされる.
テストケースの2行目には,n個の整数x_iが書かれている.x_iはi番目のマスに書かれている指示を表す.x_i = -1 ならば「振り出しに戻る」,0 < x_i ≦ n-i ならば「x_iマス進む」,x_i = 0 ならそのマスには何の効果もない.
x_1, x_n は0であることが保証されている.与えられるすごろくはゴール可能であり,ダイスを振る回数の期待値は10^7以上にならないことが保証されている.テストケースの数は1つのファイルにつき300個以下であることが保証されている.また,1つのファイルにつきnの合計は500,000以下であることが保証されている.
Output
各テストケースに対して,ダイスを振る回数の期待値を1行に出力せよ.誤差は,絶対誤差もしくは相対誤差で10^{-7}まで許容される.
Sample Input
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
Sample Output
1.00000000 6.00000000 2.16139403 1.00000000 10.50000000