《Infinite Chronicle -Princess Castle-》是一款简单的角色扮演游戏。游戏共有 $n+1$ 个检查点,编号为 $0$ 到 $n$。对于每个 $i = 1, 2, \dots, n$,都有一条从检查点 $i-1$ 到 $i$ 的单向道路。游戏从检查点 $0$ 开始,在检查点 $n$ 结束。道路上会出现邪恶怪物,英雄需要与它们战斗。你可以在任何检查点保存游戏进度;如果你输掉了一场战斗,可以从上一次保存的检查点重新开始游戏。游戏开始时,进度会自动在检查点 $0$ 保存,且不消耗时间。
兔子 Hanako 很喜欢这款游戏,现在她对速通(speedrunning)很感兴趣。尽管 Hanako 是游戏高手,但由于随机因素,她并不能总是赢得战斗。对于每个 $i$,她估计了赢得从检查点 $i-1$ 到 $i$ 道路上所有战斗的概率 $p_i$。每次她从检查点 $i-1$ 出发,经过恰好一分钟后,她将以概率 $p_i$ 到达检查点 $i$,并以概率 $1 - p_i$ 回到她上一次保存进度的地方。
令 Hanako 感到困惑的是,在检查点保存进度也需要一分钟(!),因此为了快速通关,跳过某些检查点不保存可能是一个好主意。任务是计算完成游戏所需的最短期望时间。
输入格式
输入包含多组数据。数据集的数量不超过 $50$ 个。每个数据集包含两行:第一行包含一个整数 $n$ ($1 \le n \le 10^5$),表示道路的数量;第二行包含 $n$ 个数字 $p_1, p_2, \dots, p_n$ ($0 < p_i \le 1$),表示获胜概率。每个 $p_i$ 小数点后恰好有两位数字。输入结束标志为仅包含一个零的行。
输出格式
对于每个数据集,输出完成游戏所需的最短期望时间(以分钟为单位),相对误差不超过 $10^{-8}$。
样例
样例输入 1
2 0.50 0.40 2 0.70 0.60 4 0.99 1.00 1.00 0.01 0
样例输出 1
5.5000000000 4.0476190476 104.0101010101