测试数据来自 system/1958
描述
万老板希望在新的智能音乐播放设备IPOOD中,实现对波文件音质性能的评定。
离散的波文件被考虑为长度为N的整数序列:A1,A2,⋯,AN。所谓的音质性能检测,可以评定任何的一个区间范围[L,R],其音质性能取决于下述评分:
{∑L<i<RF[Ai−1+1]F[Ai+1−1]}mod(109+7)
其中F是可归纳定义的数列,满足F[1]=1,F[2]=2且F[k+2]=F[k+1]+aF[k]+b对于任何k≥1成立。其中a 和b为正整系数。
为了可以为用户提供更好的服务体验,并希望对给定的波文件进行修正优化。这一款设备中,还应该支持对波文件的修改。
对于给定的区间范围[L,R],允许用户将A[L]至A[R]同时增加一,或同时减少一。
格式
输入格式
输入的第一行有两个正整数,波文件的总长度N,和总的修改与询问次数Q。
第二行有两个整数,分别表示系数a和b。
之后若干行,一共给出N个正整数A1到AN,满足1≤A[i]≤2∗109。
之后Q行,每行是下述三种形式之一:
plus L R:将波文件数列中下标在区间[L,R]内的元素每一个都加一。
minus L R:将波文件数列中下标在区间[L,R]内的元素每一个都减一。
query L R:询问区间[L,R]的音质性能评分。
修改和询问中,均保证L≤R,且保证A[i]严格大于总的修改次数加一(修改操作包括plus和minus两种)。
输出格式
输出若干行,每一行对应一次询问,输出一个整数。
样例1
样例输入1
样例输出1
样例2
样例输入2
样例输出2
限制
对于15%的数据,N≤8000,Q≤8000。
对于100%的数据,N≤100000,Q≤100000,0≤a,b≤109。
此外:
存在15%的数据,每一次修改的区间都是[1,N]。
还存在30%的数据,a=0,b=1。
来源
SDOI 2015 round2 day1