#4157. A. Profitable Interest Rate 有利可图的利率 CodeForces 800

A. Profitable Interest Rate 有利可图的利率 CodeForces 800

💰 有利账户与无利账户

📖 题目描述

Alice 有 aa 个硬币。她可以开设一种名为“有利”的银行存款账户,但开设该账户的最低金额要求是 bb 个硬币。

还有一种名为“无利”的存款账户,可以用任意数量的硬币开设。Alice 注意到,如果她使用 xx 个硬币开设“无利”账户,开设“有利”账户所需的最低金额将减少 2x2x 个硬币。 但这些用于“无利”账户的硬币之后不能再用于“有利”账户。

请你帮助 Alice 计算,在她先往“无利”账户中投入若干硬币(也可以是 00)之后,她最多还能往“有利”账户投入多少硬币。 如果 Alice 永远无法满足“有利”账户的最低开设要求,则输出 00


📥 输入格式

本题包含多组测试数据。

  • 第 1 行一个整数 tt1t1041 \le t \le 10^4),表示测试组数;
  • 接下来的 tt 行,每行包含两个整数 a,ba, b1a,b1091 \le a, b \le 10^9):
    • aa 表示 Alice 当前拥有的硬币数量;
    • bb 表示“有利”账户的最低开设金额。

📤 输出格式

对于每组测试数据,输出一行一个整数,表示 Alice 最多可以向“有利”账户存入的硬币数。 如果永远无法开设“有利”账户,输出 0


🧪 样例输入

5
10 5
7 9
5 100
1 1
1 2

✅ 样例输出

10
5
0
1
0

🔍 样例说明

  • 第 1 组:a=10b=5a = 10 \ge b = 5,Alice 可以直接用全部 10 个硬币开设“有利”账户。
  • 第 2 组:Alice 先用 x=2x = 2 个硬币开设“无利”账户,剩余 55 个;此时“有利”账户最低金额减少 2x=42x = 4,从 99 降为 55,刚好能开。
  • 第 3 组:无论怎么分配,都不能满足“有利”账户的最低金额要求,输出 00
  • 第 4 组:a=b=1a = b = 1,可以直接开设。
  • 第 5 组:a=1<b=2a = 1 < b = 2,无法通过任何方式满足要求。