描述

  题目是吸引你别点进来的,这道题非常简单。

  某人去射箭,训练场有一系列的靶子X_{1},X_{2},...,X_{n},已知某人射中X_{i}的概率为P_{i}。李华会为某人选一段靶子进行射击,但是李华觉得还是不够过瘾,于是他为某人设计了一个记分规则:对于一段连续打中的靶子,设靶子数量为L(L\geq 1),某人的总分会增加(L+a)\ast (L+b),其中a,b是常数。

  例如当n= 8,a= 1,b= 2时,若某人的射击情况为11011101,则某人的得分为(2+1)*(2+2)+(3+1)*(3+2)+(1+1)*(1+2)= 38

  某人的命中率受多方面影响,很容易变化,李华想知道某一段靶子某人的期望得分。现在要求你支持两个操作:

  1. 修改:获得两个参数i,p,表示P_{i}修改为p。保证1\leq i\leq n0\leq p\leq 1
  2. 查询:获得两个参数l,r,表示询问某人射击X_{i\in [l,r]}期望得分。保证1\leq l\leq r\leq n

输入格式

  第一行三个整数n,m,a,b,表示有n个靶子,m个操作,a,b含义见描述。

  接下来n行,第i行一个实数,表示P_{i}。保证0\leq P_{i}\leq 1(建议Hack时数据保留4位小数,不然数据太大了)

  接下来m行,每行表示一个操作,第一个正整数为type。若type=1,则后面有一个正整数i和一个实数p,若type=2,则后面有两个正整数l,r。参数​含义见描述。

输出格式

  每个询问操作对应一行输出,答案均四舍五入强制保留两位小数

样例输入

2 3 1 1
0.5
0.5
2 1 2
1 1 0
2 1 2

样例输出

4.25
2.00

数据范围与约定

  对于100%的数据:1\leq n,m\leq 500000,0\leq a,b\leq 3

注释

  ContestHunter的评测姬能在2s中做很多很多事情哟