You're playing a game called Osu! Here's a simplified version of it. There are *n* clicks in a game. For each click there are two outcomes: correct or bad. Let us denote correct as "O", bad as "X", then the whole play can be encoded as a sequence of *n* characters "O" and "X".

Using the play sequence you can calculate the score for the play as follows: for every maximal consecutive "O"s block, add the square of its length (the number of characters "O") to the score. For example, if your play can be encoded as "OOXOOOXXOO", then there's three maximal consecutive "O"s block "OO", "OOO", "OO", so your score will be 2<sup class="upper-index">2</sup> + 3<sup class="upper-index">2</sup> + 2<sup class="upper-index">2</sup> = 17. If there are no correct clicks in a play then the score for the play equals to 0.

You know that the probability to click the *i*-th (1 ≤ *i* ≤ *n*) click correctly is *p*<sub class="lower-index">*i*</sub>. In other words, the *i*-th character in the play sequence has *p*<sub class="lower-index">*i*</sub> probability to be "O", 1 - *p*<sub class="lower-index">*i*</sub> to be "X". You task is to calculate the expected score for your play.
The first line contains an integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>) — the number of clicks. The second line contains *n* space-separated real numbers *p*<sub class="lower-index">1</sub>, *p*<sub class="lower-index">2</sub>, ..., *p*<sub class="lower-index">*n*</sub> (0 ≤ *p*<sub class="lower-index">*i*</sub> ≤ 1).

There will be at most six digits after the decimal point in the given *p*<sub class="lower-index">*i*</sub>.
n = int(input())
p = list(map(float, input().split()))
if n == 1:
    print(p[0])
    quit()
M = [0.0] * n
f = [0.0] * n
f[0] = 1.0
for i in range(1, n):
    f[i] = p[i] * f[i - 1] + 1 - p[i]
res = p[0] * p[1]
ans = res
for i in range(2, n):
    temp = (1 - p[i - 1]) + p[i - 1] * (1 - p[i - 2])
    res = p[i] * p[i - 1] * (1 - p[i - 2]) + p[i] * (res + 1 - temp)
    ans += res
print(sum(p) + 2 * ans)