loj#P6704. 健身计划

健身计划

题目描述

「ひびき……你又胖了吧」あやか突然指出。

ひびき最近又胖了,为此她十分苦恼,于是找到健身教练まちお帮她指定减肥健身计划。

まちお建议ひびき每天做 nn 次仰卧起坐,但是ひびき认为这个动作很累,まちお便提出可以把这些运动分成若干组进行,并且每做完一组 aia_i 次仰卧起坐都会积累 FaiF_{a_i}SilvermanGym\text{SilvermanGym} 的积分,且序列 FF 满足关系

$$\begin{cases} F_n=n &n<2\\ xF_n=aF_{n-1}+bF_{n-2} & n\ge2 \end{cases} $$

为了不让身体过负荷且能够起到减肥效果,ひびき只会正好做 nn 次,每一种分组的方案都会让ひびき得到 Fai\prod F_{a_i} 点积分,现在她想知道所有方案能得到的积分的总和是多少。

输入格式

输入仅一行,包含四个整数 n,x,a,bn,\,x,\,a,\,b ,含义见题面。

输出格式

输出包含一个整数,表示所有健身方案的积分和,由于这个结果可能很大,所以ひびき只想知道这个答案对 109+710^9+7 取模后的结果即可。

3 1 1 1
5

数据范围与提示

测试点编号 nn\le x,a,bx,a,b
11 88 =1=1
232\sim 3 10310^3
44 10910^9
575\sim 7 10610^6
8108\sim 10 101810^{18}

对于 100%100\% 的数据,保证 n1018,  x,a,b109n\le10^{18},\;x,a,b\le10^9