绝命沙虫
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

风暴来,黄沙起,绝命沙虫剧毒见。

初始时你的手上有 N 元 RMB。

交易规则如下:

  • 你通过充值 a 元可以获得 红点和 绿点,其中 M 是充值返点倍率。

  • 你每次充值的数量必须是正整数,也就是说不能为零或负数。

  • 你通过出售 b 红点可以获得 元 RMB 和 点消费经验。 

  • 你通过出售 c 绿点可以获得 点消费经验。

给定 N,M,请回答你最后获得的消费经验是多少。

注意:任何时刻只要你手上有 RMB 或者有红点/绿点你都依次使用并且用光,你不会手上有而不用

输入描述:

全文第一行输入一个整数 ,表示数据组数。

第一行输入两个数 ,分别表示初始拥有的 RMB 数量和充值返点倍率。

数据保证 N 是正整数,M 一定是一位小数。

输出描述:

每行输出一个整数,你最后获得的消费经验是多少。
示例1

输入

复制
2
10 1.5
160 2.0

输出

复制
270
5760

说明

对于样例 #1,充入 10 RMB,获得 10\times100=1000 红点和 10\times100\times(1.5-1)=500 绿点。

花掉它们,获得 \dfrac{1000}{10}+\dfrac{500}{10}=150 消费经验和 \dfrac{1000}{200}=5 RMB。

充入 5 RMB,获得 500 红点和 250 绿点;花掉它们,获得 50+25=75 消费经验和 2 RMB。

充入 2 RMB,获得 200 红点和 100 绿点;花掉它们,获得 20+10=30 消费经验和 1 RMB。

充入 1 RMB,获得 100 红点和 50 绿点;花掉它们,获得 10+5=15 消费经验。

结算(最终获得):150+75+30+15=270 消费经验。

对于样例 #2,充入 160 RMB,获得 16000 红点和 10000 绿点;转换成 80 RMB 和 2600 消费经验;

充入 80 RMB,获得 8000 红点和 8000 绿点;转换成 40 RMB 和 1600 消费经验;

充入 40 RMB,获得 4000 红点和 4000 绿点;转换成 20 RMB 和 800 消费经验;

\cdots

充入 1 RMB,获得 100 红点和 100 绿点;转换成 20 消费经验。

结算(最终获得):2600+1600+800+400+200+100+40+20=5760 消费经验。