Codeforces Round 370 (Div. 2)
E
Memory and Casinos
Codeforces
2500
原题
← D→
翻译中…

There are $*n*$ casinos lined in a row. If Memory plays at casino $*i*$, he has probability $*p*_{*i*}$ to win and move to the casino on the right ($*i* + 1$) or exit the row (if $*i* = *n*$), and a probability $1 - *p*_{*i*}$ to lose and move to the casino on the left ($*i* - 1$) or also exit the row (if $*i* = 1$).

翻译中…

We say that Memory dominates on the interval $*i*... *j*$ if he completes a walk such that,

翻译中…
  • He starts on casino $*i*$.
  • He never looses in casino $*i*$.
  • He finishes his walk by winning in casino $*j*$.
翻译中…

Note that Memory can still walk left of the $1$-st casino and right of the casino $*n*$ and that always finishes the process.

翻译中…

Now Memory has some requests, in one of the following forms:

翻译中…
  • $1$ $*i*$ $*a*$ $*b*$: Set image.
  • $2$ $*l*$ $*r*$: Print the probability that Memory will dominate on the interval $*l*... *r*$, i.e. compute the probability that Memory will first leave the segment $*l*... *r*$ after winning at casino $*r*$, if she starts in casino $*l*$.
翻译中…

It is guaranteed that at any moment of time $*p*$ is a non-decreasing sequence, i.e. $*p*_{*i*} ≤ *p*_{*i* + 1}$ for all $*i*$ from $1$ to $*n* - 1$.

翻译中…

Please help Memory by answering all his requests!

翻译中…

Input

翻译中…

The first line of the input contains two integers $*n*$ and $*q*$($1 ≤ *n*, *q* ≤ 100 000$),  — number of casinos and number of requests respectively.

翻译中…

The next $*n*$ lines each contain integers $*a*_{*i*}$ and $*b*_{*i*}$ ($1 ≤ *a*_{*i*} < *b*_{*i*} ≤ 10^{9}$)  — image is the probability $*p*_{*i*}$ of winning in casino $*i*$.

翻译中…

The next $*q*$ lines each contain queries of one of the types specified above ($1 ≤ *a* < *b* ≤ 10^{9}$, $1 ≤ *i* ≤ *n*$, $1 ≤ *l* ≤ *r* ≤ *n*$).

翻译中…

It's guaranteed that there will be at least one query of type $2$, i.e. the output will be non-empty. Additionally, it is guaranteed that $*p*$ forms a non-decreasing sequence at all times.

翻译中…

Output

翻译中…

Print a real number for every request of type $2$ — the probability that boy will "dominate" on that interval. Your answer will be considered correct if its absolute error does not exceed $10^{ - 4}$.

翻译中…

Namely: let's assume that one of your answers is $*a*$, and the corresponding answer of the jury is $*b*$. The checker program will consider your answer correct if $|*a* - *b*| ≤ 10^{ - 4}$.

翻译中…

样例

Input #1
3 13
1 3
1 2
2 3
2 1 1
2 1 2
2 1 3
2 2 2
2 2 3
2 3 3
1 2 2 3
2 1 1
2 1 2
2 1 3
2 2 2
2 2 3
2 3 3
Output #1
0.3333333333
0.2000000000
0.1666666667
0.5000000000
0.4000000000
0.6666666667
0.3333333333
0.2500000000
0.2222222222
0.6666666667
0.5714285714
0.6666666667
InputCopy OutputCopy
题目信息
题号
712E
时间限制
4 s
内存限制
512 MB
标签
数据结构
数学
概率论

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