解题思路
设两种彩票面值分别为n和n+1,商品价格为m。
如果一共买了k张彩票,那么总金额最少是全买n元时的
kn
总金额最多是全买n+1元时的
P4833.第2题-炒鸡钞票构造
题目内容
游游有两种不同面额的钞票,各无限张:一种面值为 n 元,另一种面值为 n+1 元。游游想购买一件价格为 m 元的商品。该自助商店没有找零系统,即,若付款金额超过商品价格,商店不会找零,多余部分由买家自行承担;付款金额必须不少于商品价格。请你计算,若想完成购买,最少需要额外多支付多少元;若能刚好支付,则额外花费为 0。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数 T (1≤T≤104) 表示数据组数。每组测试数据描述如下:
- 在一行上输入两个整数 n,m (1≤n,m≤109),分别表示钞票的较小面值与商品价格。
输出描述
对于每一组测试数据,新起一行。
样例1
输入
3
3 8
4 6
5 7
输出
0
2
3
说明
-
第一组输入 n=3,m=8:
两种钞票面值为 3 元和 4 元。存在组合 3+5=8(3 元钞票用1张,4 元钞票用1张,总计 3+4=8),刚好支付商品价格,因此额外支付金额为 0。
-
第二组输入 n=4,m=6:
两种钞票面值为 4 元和 5 元。无法凑出恰好 6 元的付款金额,需寻找不小于 6 的最小付款金额:
- 尝试 4 元钞票:1 张为 4(不足),2 张为 8(满足),额外支付 8−6=2;
- 尝试 5 元钞票:1 张为 5(不足),2 张为 10(满足),额外支付 10−6=4。
对比后最小额外支付金额为 2。
-
第三组输入 n=5,m=7:
两种钞票面值为 5 元和 6 元。无法凑出恰好 7 元的付款金额,需寻找不小于 7 的最小付款金额:
- 尝试 5 元钞票:1 张为 5(不足),2 张为 10(满足),额外支付 10−7=3;
- 尝试 6 元钞票:1 张为 6(不足),2 张为 12(满足),额外支付 12−7=5。
对比后最小额外支付金额为 3。