#bzoj2122. 工作评估

工作评估

题目描述

利用空闲时间,BX\text{BX}希望外出工作,工作开始之前,公司就会给BX\text{BX}一个评估值X0X_0,之后每天BX\text{BX}的评估值都是根据上一天的评估值和当天公司的运行状况得出,即Xi=Xi1+DiX_i=X_{i-1}+D_i,但是每天的评估值有一个上限,也就是说完整的评估公式因该是:

Xi=min{Xi1+Di,Li}X_i=\min\{X_{i-1}+D_i,L_i\}

现在BX\text{BX}已经知道了该公司对自己的初始评估值X0X_0、公司每天的运行状况DiD_i、每天的评估上限LiL_i,他的空闲时间是从第AA天到第BB天,他希望找到一段时间i,j(AijB)i,j (A≤i≤j≤B),使得从第ii天开始工作,到第j天结束后的评估值最大。当然如果任意一段时间的工作得到评估值都小于初始评估值X0X_0BX\text{BX}可以选择不工作,从而得到最大的评估值。

输入格式

输入的第一行包含两个整数N,MN,M,分别表示总共工作天数和询问数。

第二行NN个数,表示DiD_i。第三行NN个数,表示LiL_i

以下MM行,每行33个数A,B,X0A,B,X_0,表示一次询问。

输出格式

MM行,每行输出一个整数,表示评估的最大值

样例

6 3
-6 5 3 2 -3 4
8 10 8 1 9 9
1 3 9
2 6 3
3 4 0
10
8
3

数据规模与约定

对于100%100\%数据,满足N,M<50001,Di<10001,0Li<1000000001N,M<50001,|Di|<10001,0\le Li<1000000001.