1892. 高阶前缀和

记二维数组行下标从 0 开始,列下标从 1 开始。一维数组下标从 1 开始。

给定长为 n 的数组 a。设有二维数组 s,满足 s_{0,i}=a_i,且: s_{i,1}=a_{i}, s_{i,j}=s_{i,j-1}+s_{i-1,j}(i\ge 1,j > 1) 求任意 s_{y,x}\bmod (10^9+7)

输入

输入一行三个整数 n,x,y(1\le n\le10^5,1\le x\le n,0\le y\le10^9)

接下来输入一行 n 个整数,第 i 个整数为 a_i(0\le a_i\le 10^9)

输出

输出一行一个整数代表答案。

样例

标准输入 复制文本
5 4 2
1 1 1 1 1
标准输出 复制文本
10
标准输入 复制文本
6 6 2
1 1 4 5 1 4
标准输出 复制文本
48
标准输入 复制文本
7 7 1000000000
1 4 3 7 5 8 1
标准输出 复制文本
999999840

提示

对样例一,有 s_0=(1,1,1,1,1),s_1=(1,2,3,4,5),s_2=(1,3,6,10,15),故 s_{2,4}=10

对样例二,有 s_0=(1,1,4,5,1,4),s_1=(1,2,6,11,12,16),s_2=(1,3,9,20,32,48),故 s_{2,6}=48

自主思考:如果扩展到 n\le 10^7 怎么做。

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 72
通过 14