级数
给定非负整数 n,k 和质数 p,定义函数
f(x)=i=0∑kx!(n−x)!xi
其中 xi 表示 x 的 i 次下降幂,即
xi=x(x−1)(x−2)⋯(x−i+1)(i≥1),x0=1
请计算前缀和
S(n)=x=0∑nf(x)
在模 p 意义下的值。
输入格式
一行三个整数 n,k,p。
输出格式
输出一个整数,表示 S(n)modp 的值。
可以证明 S(n) 是一个有理数且其最简分数的分母与 p 互质。若 S(n) 的最简分数表示为 ba,你需要输出整数 x∈[0,p) 使得 b⋅x≡a(modp)。
样例 1
输入
2 1 998244353
输出
4
说明
- f(0)=0!⋅2!1+0!⋅2!0=21
- f(1)=1!⋅1!1+1!⋅1!1=2
- f(2)=2!⋅0!1+2!⋅0!2=23
所以 S(2)=21+2+23=4,输出 4mod998244353=4。
样例 2
输入
3 0 7
输出
6
说明
当 k=0 时,f(x)=x!(n−x)!1。
S(3)=61+21+21+61=34。
34mod7:因为 3−1≡5(mod7),所以答案为 4×5mod7=6。
提示
本题共 20 组数据。
对于前 20% 的数据,0≤k≤n≤2000。
对于前 40% 的数据,0≤k≤n≤2×105。
另有 20% 的数据,k=0。
另有 20% 的数据,k=1。
对于 100% 的数据,0≤k≤n≤5×107,p 为质数且 n<p≤109+7。