题目背景
1s 512M
题目描述
众所周知,小葱同学擅长计算,尤其擅长计算组合数。小葱现在希望你计算
(k=0∑nf(k)×xk×(kn))modp的值。其中 n, x, p 为给定的整数,f(k) 为给定的一个 m 次多项式 f(k)=a0+a1k+a2k2+⋯+amkm。(kn) 为组合数,其值为 (kn)=k!(n−k)!n!。
输入格式
第一行四个非负整数 n, x, p, m。
第二行 m+1 个整数,分别代表 a0, a1, ⋯, am。
输出格式
仅一行一个整数表示答案。
提示
样例 1 解释
f(0)=0,f(1)=1,f(2)=4,f(3)=9,f(4)=16,f(5)=25。
x=1,故 xk 恒为 1,乘积中的该项可以忽略。
(05)=1,(15)=5,(25)=10,(35)=10,(45)=5,(55)=1。
样例 3
见附加文件中 problem3.in
与 problem3.ans
。
数据范围与提示
对于所有测试数据:1≤n,x,p≤109,0≤ai≤109,0≤m≤min(n,1000)。
每个测试点的具体限制见下表:
测试点编号 |
n≤ |
m≤ |
其他特殊限制 |
1∼3 |
1000 |
|
4∼6 |
105 |
0 |
p 是质数 |
7∼8 |
109 |
|
9∼12 |
5 |
13∼16 |
1000 |
x=1 |
17∼20 |
|