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^2 + 3^2 + 2^2 = 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_{i}. In other words, the i-th character in the play sequence has p_{i} probability to be "O", 1 - p_{i} to be "X". You task is to calculate the expected score for your play.


-----Input-----

The first line contains an integer n (1 ≤ n ≤ 10^5) — the number of clicks. The second line contains n space-separated real numbers p_1, p_2, ..., p_{n} (0 ≤ p_{i} ≤ 1).

There will be at most six digits after the decimal point in the given p_{i}.


-----Output-----

Print a single real number — the expected score for your play. Your answer will be considered correct if its absolute or relative error does not exceed 10^{ - 6}.


-----Examples-----
Input
3
0.5 0.5 0.5

Output
2.750000000000000

Input
4
0.7 0.2 0.1 0.9

Output
2.489200000000000

Input
5
1 1 1 1 1

Output
25.000000000000000



-----Note-----

For the first example. There are 8 possible outcomes. Each has a probability of 0.125.  "OOO"  →  3^2 = 9;  "OOX"  →  2^2 = 4;  "OXO"  →  1^2 + 1^2 = 2;  "OXX"  →  1^2 = 1;  "XOO"  →  2^2 = 4;  "XOX"  →  1^2 = 1;  "XXO"  →  1^2 = 1;  "XXX"  →  0. 

So the expected score is $\frac{9 + 4 + 2 + 1 + 4 + 1 + 1}{8} = 2.75$

Difficulty: competition

Starter code:

Solutions:
n = input()
read = input()
p = []
for x in read.split():
    p.append((float)(x))
    
v = 0.0
l = 0.0
for item in p:
    v = v*(1-item) + item*(v + 2*l + 1)
    l = (l + 1)*item
print(v)


n = input()
read = input()
p = []
for x in read.split():
    p.append((float)(x))
    
v = 0.0
l = 0.0
for item in p:
    v = v*(1-item) + item*(v + 2*l + 1)
    l = (l + 1)*item
print(v)


n = input()
read = input()
p = []
for x in read.split():
    p.append((float)(x))
    
v = 0.0
l = 0.0
for u in p:
    v = v * (1 - u) + u * (v + 2 * l + 1)
    l = (l + 1) * u
print(v)


n=input()
lst = list(map(float, input().split()))

ds = []
ds.append(0)

for i, elem in enumerate(lst[1:]):
    ds.append(ds[i] * elem + lst[i]*elem)

ans = 2 * sum(ds) + sum(lst)
print(ans)


n = input()

read = input()

p = []

for x in read.split():

    p.append((float)(x))

    

v = 0.0

l = 0.0

for u in p:

    v = v * (1 - u) + u * (v + 2 * l + 1)

    l = (l + 1) * u

print(v)





# Made By Mostafa_Khaled


n,a,b=int(input()),0,0
for i in map(float,input().split()):a,b=a+i*(1+b*2),i*(b+1)
print(a)


n = int(input())
p = list(map(float, input().split()))
p.append(0)
s=[p[0]]*3
s[2]=0
ans = (2*s[2]+s[1])*(1-p[1])
for i in range(1,n):
    s[0] += 1 - p[i-1]
    for j in range(2,0,-1):
        s[j] += s[j-1]
    for j in range(3):
        s[j] *= p[i]
    ans += (2*s[2]+s[1])*(1-p[i+1])
print(ans)



# encoding: utf-8
"""
  长度为n的字符串，第i个位置上为O的概率为pi，否则为x
  字符串的得分为连续O的数量的平方和
  如"OOXXOOOXOO"的得分为4+9+4=17
  问得分期望
  Di为到i位置连续O的期望，Ei为到i位置的得分期望
  Di = (D[i-1]+1)*pi
  Ei = E[i-1] + Pi * (2D[i-1] + 1)
"""
from math import sqrt
from queue import Queue
import sys
sys.setrecursionlimit(10**6)


def __starting_point():
    # sys.stdin = open('1.txt', 'r')
    n = int(input())
    p = [float(i) for i in input().split()]
    d = [0.0 for i in range(n)]
    e = [0.0 for i in range(n)]
    d[0] = e[0] = p[0]
    for i in range(1, n):
        d[i] = p[i] * (d[i-1] + 1.0)
        e[i] = e[i-1] + p[i] * (2.0 * d[i-1] + 1)
    print(e[n-1])

__starting_point()

n=int(input().strip())

p=[0]+list(map(float,input().split()))

a=[0]*(n+1)
b=[0]*(n+1)


for i in range(1,n+1):
    b[i]=(b[i-1]+1)*p[i]
    a[i]=(a[i-1]+2*b[i-1]+1)*p[i]+a[i-1]*(1-p[i])

print(a[-1])