The package for this problem was not updated by the problem writer or Codeforces administration after we've upgraded the judging servers. To adjust the time limit constraint, a solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then the value 800 ms will be displayed and used to determine the verdict.

Codeforces Round 146 (Div. 1) |
---|

Finished |

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

dp

math

probabilities

*2000

No tag edit access

The problem statement has recently been changed. View the changes.

×
B. Let's Play Osu!

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputYou'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

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Apr/14/2024 09:15:52 (l3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|