跳转至

某不科学的多重前缀求和

预估时间限制:0.5 秒。内存限制:128 MB。

实际时限以标准程序在目标评测环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。

背景故事

小A在做学园都市第零次高中模拟考试试卷时,发现了一道有意思的数学题,于是他决定结合算法知识进行数据范围加强。

形式化问题描述

给定正整数 \(n,m\) 、非负整数 \(k\) 以及系数 \(a_0,\ldots,a_k\) .定义

\[ F_0(x)=\sum_{i=0}^{k}a_ix^i \]

对正整数 \(t,x\) ,递归定义

\[ F_t(x)=\sum_{y=1}^{x}F_{t-1}(y) \]

求 \(F_m(n)\bmod2147483647\) 的非负最小剩余。每一层求和都包含端点一和 \(x\) .\(k=0\) 时初始函数是常数 \(a_0\) .

输入格式

第一行三个整数 \(n,m,k\) .第二行 \(k+1\) 个整数,依次为 \(a_0,a_1,\ldots,a_k\) .

输出格式

输出一行一个整数,表示答案,范围为 \([0,2147483646]\) .

样例

样例 1

输入

3 2 2
1 2 1

输出

46

样例 2

输入

5 3 0
7

输出

245

样例 3

输入

1 7 3
1 2 3 4

输出

10

样例解释

第一组中,初始前三项为 \(4,9,16\) .一轮汇总得到 \(4,13,29\) ,第二轮在第三个位置的值为 \(4+13+29=46\) .

第二组的初始值恒为七,第二轮前五项为 \(7,21,42,70,105\) ,再求和得到 \(245\) .第三组只关心第一个位置,任意轮汇总后都保持 \(1+2+3+4=10\) .

数据范围与保证

对所有数据,\(1\le n\le2\times10^9\) ,\(1\le m\le10^7\) ,\(0\le k\le300\) ,\(1\le a_i\le2\times10^9\) .

分值比例 额外条件
100% 无额外条件