不公平对局
题号:NC288209
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红和小紫正在对弈。在围棋规则中,每吃掉对方的一枚棋子,就需要将这枚棋子放入棋盖中。然而,棋盖空间不大,她们任何一方吃子数量达到 x 就输了。
\hspace{15pt}当然,我们不需要考虑具体的对弈局面,模型简化如下,每个回合将会依次执行以下两步:
\hspace{23pt}\bullet\,小红有 p_1 的概率吃掉对方一枚棋子;
\hspace{23pt}\bullet\,小紫有 p_2 的概率吃掉对方一枚棋子。
\hspace{15pt}谁吃子数量达到 x 就输了。小红执黑先手,她想知道自己最终获胜的概率是多少?你需要将答案对 (10^9+7) 取模后输出。

输入描述:

\hspace{15pt}第一行输入一个正整数 x\left(1\leqq x \leqq 10^3\right),代表棋盒的容量。 
\hspace{15pt}第二行输入两个整数 a_1,b_1\left(0\leqq a_1 \leqq b_1 \leqq 10^9\right),代表小红每回合吃子概率是 p_1=\tfrac{a_1}{b_1}
\hspace{15pt}第三行输入两个整数 a_2,b_2\left(0\leqq a_2 \leqq b_2 \leqq 10^9\right),代表小紫每回合吃子概率是 p_2=\tfrac{a_2}{b_2}

\hspace{15pt}除此之外,保证 a_1,a_2 不同时为 0

输出描述:

\hspace{15pt}可以证明答案可以表示为一个不可约分数 \tfrac{p}{q} ,为了避免精度问题,请直接输出整数 \left(p \cdot q^{-1} \bmod M\right) 作为答案,其中 M = 10^9+7q^{-1} 是满足 q\times q^{-1} \equiv 1 \pmod{M} 的整数。
\hspace{15pt}更具体地,你需要找到一个整数 x \in [0, 10^9+7) 满足 x \times q10^9+7 取模等于 p,您可以查看样例解释得到更具体的说明。
\hspace{15pt}本题的数据保证,最终不可约分数的分母 q 保证不是 (10^9+7) 的倍数
示例1

输入

复制
10
0 1
1 2

输出

复制
1

说明

\hspace{15pt}在这个样例中,小紫每回合有 \tfrac{1}{2}=50 \% 的概率吃掉小红一枚棋子,但小红永远不会吃子,所以小紫必败。
示例2

输入

复制
1
1 1
1 1

输出

复制
0

说明

\hspace{15pt}在这个样例中,每回合双方各有 100 \% 的概率吃子,但由于小红先手,所以小红的棋盖最先放不下。
示例3

输入

复制
1
1 2
1 2

输出

复制
333333336

说明

\hspace{15pt}在这个样例中,最终计算得到的结果是 \tfrac{1}{3},我们能够找到,333\,333\,336 \times 3 = 1\,000\,000\,008,对 10^9+7 取模后恰好等于分子 1,所以 333\,333\,336 是需要输出的答案。