好得不能再好了!泰拉投资大师课
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

你是身无分文的博士,今天你看到了泰拉投资大师课的广告,你决定报名这个课程。你想到当年叉烧猫用 20 龙门币赚了 3700 万龙门币,今天你博士也要成为投资大师!



投资有风险,入市需谨慎


在一次模拟投资中,你有 p 的概率赚到钱,有 1-p 的概率亏钱。


你的目标是赚到 n 次钱,而你一共有 n-1 次亏钱的机会,即:当你总共赚了 n 次钱时,就算完成目标,不需要再继续投资;当你总共亏了 n 次钱时,就算失败,不需要再继续投资。每次投资的结果是独立事件。


为了评估风险,你想知道,能成功完成目标的概率是多少?

输入描述:

第一行一个整数 T (1 \le T \le 10^4),表示测试用例数。


接下来,对于每组测试用例:


一行三个正整数 n, p, q (1 \le n \le 10^5, 1 \le p < q \le 10^5),表示你的目标是赚到 n 次钱,你有 \textstyle \dfrac{p}{q} 的概率赚钱,\textstyle 1-\dfrac{p}{q} 的概率亏钱。


保证所有测试用例的 n 之和不超过 5 \cdot 10^6

输出描述:

对于每组测试用例,输出一行一个整数表示答案对 10^9+7 取模的结果。

示例1

输入

复制
3
1 1 2
4 2 5
10086 114 514

输出

复制
500000004
815744006
831515095

备注:

\textstyle \dfrac{a}{b} \equiv a \cdot b^{m-2} \pmod m,其中 m 是质数。


对于第一组样例:只有两种方案,第一次失败或者第一次成功。但是因为只能失败 n-1=0 次,所以达成目标的概率就是 \textstyle \dfrac{1}{2} \equiv 500000004 \pmod{10^9 + 7}