题面描述
Arcaea的世界是一个二维平面,平面内的每个格点 {(x,y)∣x,y∈Z} 都有一片大小和厚度可忽略不计的“残片”(玻璃),每片玻璃完全一致且都与直线 L:y=−x 垂直。
同时,每片玻璃还有相同的两个系数:折射系数 a 和反射系数 b(a+b=1)。
当一束强度为 w 的光束沿 x 轴正方向射向任意一片玻璃时,该玻璃将沿 x 轴正方向射出强度为 a⋅w 的折射光束,并沿 y 轴正方向射出强度为 b⋅w 的反射光束;
对称地,当一束强度为w的光束沿y轴正方向射向任意一片玻璃时,该玻璃将沿y轴正方向射出强度为a⋅w的折射光束,并沿x轴正方向射出强度为b⋅w的反射光束。
现Hikari在位置(−0.5,0)向x轴的正方向发射了强度为1的光束("Fracture Ray"),并想要使其打中在位置(n+0.5,m)的Tairitsu;她想知道最终照射在Tairitsu上的光束总强度。
Input
输入共一行,含4个整数n,m,c,d:
n和m的含义见上,用来确定Tairitsu的坐标,保证0≤n,m≤106;
而对于c和d,我们约定题意中的a=c+dc,b=c+dd,且保证0≤c,d<M,1≤c+d<M;M=109+7,是一个质数。
Output
对于每组数据:
可以证明,需要输出的答案“最终照射在Tairitsu上的光束总强度”可表示为一对互质数:非负数 p 和正数 q 的比值 qp,且 q不是 M=109+7的倍数。
你需要将 qp 对 M 取模后再输出;换而言之,找到必然存在的 q 关于M 的逆元 inv(q)(解释见提示)后,输出 (p⋅inv(q))modM。
输出仅一行,含一个整数代表答案;之后换行恰好一次。
输入样例:
10
0 0 2 1
0 1 2 1
0 2 2 1
1 0 2 1
1 1 2 1
1 2 2 1
2 0 2 1
2 1 2 1
2 2 2 1
992993 994995 11009 999988997
输出样例:
666666672
111111112
740740746
444444448
481481485
111111112
962962970
481481485
234567903
939614532
注:
样例中的前9个答案的真实值依次为32,91,272,94,274,91,278,274,8110。
对于前30%的数据有: n×m≤1000
对于所有测试点有: 0≤n,m≤106 0≤c,d<M,1≤c+d<M;M=109+7