题目背景
题目描述
小 W 最近正在学习某编程语言。
这个编程语言有个语句如下:
range(a,b,c)
这个语句表示一个序列,这个序列是这样的:
[a,a+c,a+2c,⋯,a+kc]
其中,k 是最大的满足 a+kc<b 的非负整数 k。例如 range(1,7,2)
表示的序列为 [1,3,5]。
小 W 想问你一个问题:给你一个长为 n 的序列 g(下标从 1 开始),求出下列式子的值,答案模 109+7。
$$\sum_{a=1}^{n}\sum_{b=a+1}^{n+1}\sum_{c=1}^{n}\sum\limits_{i\in \mathrm{range}(a,b,c)} g_i
$$
输入格式
为了加快读入速度,我们采用以下读入方法。
读入共一行五个非负整数 n,A,B,C,gn。
其中 n 为序列 g 的长度,A,B,C 为生成数据的参数,gn 为序列 g 的第 n 项。
对于序列 g 的第 i(1≤i<n)项,满足 gi≡Agi+12+Bgi+1+C(mod109+7)。
输出格式
共一行一个非负整数,为题目中所求的答案。
2 0 1 1 1
11
9 0 1 0 663
422994
20 1 0 0 998244353
560706529
114514 17723 134 1045 233337
442762986
提示
【样例解释 #1】
g=[2,1](下标从 1 开始)
令 ans=i∈range(a,b,c)∑gi。
当 a=1,b=2,c=1 时,ans=2。
当 a=1,b=2,c=2 时,ans=2。
当 a=1,b=3,c=1 时,ans=2+1=3。
当 a=1,b=3,c=2 时,ans=2。
当 a=2,b=3,c=1 时,ans=1。
当 a=2,b=3,c=2 时,ans=1。
答案为 ∑ans=2+2+3+2+1+1=11。
【样例解释 #2】
该样例满足特殊性质 A。
【数据范围】
对于 100% 的数据:1≤n≤2×107,0≤A,B,C,gn<109+7。
测试点编号 |
n= |
特殊性质 |
1 |
AB |
2 |
1000 |
无 |
3 |
4 |
5000 |
5 |
6 |
104 |
A |
7 |
105 |
8 |
B |
9 |
无 |
10 |
2×105 |
A |
11 |
B |
12 |
5×105 |
无 |
13 |
106 |
A |
14 |
B |
15 |
2×106 |
无 |
16 |
3×106 |
17 |
5×106 |
A |
18 |
107 |
19 |
B |
20 |
1.3×107 |
无 |
21 |
1.6×107 |
22 |
2×107 |
A |
23 |
B |
24 |
无 |
25 |
特殊性质 A:保证所有 gi 相等。
特殊性质 B:保证只有 gn=0。