UOJ Logo Universal Online Judge

UOJ

#540. 【统一省选2020】组合数问题

附件下载 统计

众所周知,小葱同学擅长计算,尤其擅长计算组合数。小葱现在希望你计算

(k=0nf(k)×xk×(nk))modp

的值。其中 n,x,p 为给定的整数,f(k) 为给定的一个 m 次多项式 f(k)=a0+a1k+a2k2++amkm

(nk) 为组合数,其值为 (nk)=n!k!(nk)!

输入格式

第一行四个非负整数 n,x,p,m

第二行 m+1 个整数,分别代表 a0,a1,,am

输出格式

一行一个整数表示答案。

样例1

input

5 1 10007 2
0 0 1

output

240

explanation

f(0)=0f(1)=1f(2)=4f(3)=9f(4)=16f(5)=25

x=1,故 xk 恒为 1,乘积中的该项可以忽略。

(50)=1,(51)=5,(52)=10,(53)=10,(54)=5,(55)=1

最终答案为:

k=05f(5)×(5k)=0×1+1×5+4×10+9×10+16×5+25×1=240

样例2

input

996 233 998244353 5
5 4 13 16 20 15

output

869469289

样例3

见附加文件中 ex_problem3.inex_problem3.ans

数据范围

对于所有测试数据:1n,x,p109,0ai109,0mmin(n,1000)

每个测试点的具体限制见下表:

测试点编号nm其他特殊限制
1310001000
461050p是质数
78109
9125
13161000x=1
1720

时间限制: 1s

空间限制: 512MB

附加数据下载