Codeforces Round 282 (Div. 1)
C
Helping People
Codeforces
2600
原题
← BD →
翻译中…

Malek is a rich man. He also is very generous. That's why he decided to split his money between poor people. A charity institute knows $*n*$ poor people numbered from $1$ to $*n*$. The institute gave Malek $*q*$ recommendations. A recommendation is a segment of people like $[*l*, *r*]$ which means the institute recommended that Malek gives one dollar to every person whose number is in this segment.

翻译中…

However this charity has very odd rules about the recommendations. Because of those rules the recommendations are given in such a way that for every two recommendation $[*a*, *b*]$ and $[*c*, *d*]$ one of the following conditions holds:

翻译中…
  • The two segments are completely disjoint. More formally either $*a* ≤ *b* < *c* ≤ *d*$ or $*c* ≤ *d* < *a* ≤ *b*$
  • One of the two segments are inside another. More formally either $*a* ≤ *c* ≤ *d* ≤ *b*$ or $*c* ≤ *a* ≤ *b* ≤ *d*$.
翻译中…

The goodness of a charity is the value of maximum money a person has after Malek finishes giving his money. The institute knows for each recommendation what is the probability that Malek will accept it. They want to know the expected value of goodness of this charity. So they asked you for help.

翻译中…

You have been given the list of recommendations and for each recommendation the probability of it being accepted by Malek. You have also been given how much money each person initially has. You must find the expected value of goodness.

翻译中…

Input

翻译中…

In the first line two space-separated integers $*n*, *q*$ ($1 ≤ *n* ≤ 10^{5}$, $1 ≤ *q* ≤ 5000$) are given.

翻译中…

In the second line $*n*$ space-separated integers $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ ($0 ≤ *a*_{*i*} ≤ 10^{9}$) are given meaning that person number $*i*$ initially has $*a*_{*i*}$ dollars.

翻译中…

Each of the next $*q*$ lines contains three space-separated numbers $*l*_{*i*}, *r*_{*i*}, *p*_{*i*}$ ($1 ≤ *l*_{*i*} ≤ *r*_{*i*} ≤ *n*$, $0 ≤ *p* ≤ 1$) where $*l*_{*i*}$ and $*r*_{*i*}$ are two integers describing the segment of recommendation and $*p*_{*i*}$ is a real number given with exactly three digits after decimal point which is equal to probability of Malek accepting this recommendation.

翻译中…

Note that a segment may appear several times in recommendations.

翻译中…

Output

翻译中…

Output the sought value. Your answer will be considered correct if its absolute or relative error is less than $10^{ - 6}$.

翻译中…

样例

Input #1
5 2
1 7 2 4 3
1 3 0.500
2 2 0.500
Output #1
8.000000000
InputCopy OutputCopy
Input #2
5 2
281 280 279 278 282
1 4 1.000
1 4 0.000
Output #2
282.000000000
InputCopy OutputCopy
Input #3
3 5
1 2 3
1 3 0.500
2 2 0.250
1 2 0.800
1 1 0.120
2 2 0.900
Output #3
4.465000000
InputCopy OutputCopy
题目信息
题号
494C
时间限制
2 s
内存限制
512 MB
标签
动态规划
概率论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。