Description
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。
Input
输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。
Output
输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
Sample Input
3 7
Sample Output
11
Hint
【输入输出样例说明】
小凯手中有面值为3和7的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如:
12 = 3 * 4 + 7 * 0
13 = 3 * 2 + 7 * 1
14 = 3 * 0 + 7 * 2
15 = 3 * 5 + 7 * 0
……
Data Constraint
对于 30%的数据: 1 ≤ a,b ≤ 50。
对于 60%的数据: 1 ≤ a,b ≤ 10,000。
对于 100%的数据:1 ≤ a,b ≤ 1,000,000,000。
小学生数学竞赛题,啊啊啊好难啊,花了我三刻钟。。。
差点没做出来
由题意得a,b互质
不妨设a < b
首先我脑补了一个结论 Ans<(a−1)b
Proof:
不是显然(一定)么,我们要找的是 max{Ans|∀kb≤Ansa/|Ans−kb} ,然而当Ans ≥(a−1)b 时, Ans−kb≥0(0≤k≤a−1) 因为a,b一定互质,所以kb对a取模一定覆盖集合{0…a-1}没有重复没有遗漏,那么一定存在 kb≡Ans(moda)
当Ans>(a-2)b时,若要满足 Ans−kb≥0 有 0≤k≤a−2 那么最好情况是 a/|Ans−kb(1≤k≤a−2) 而恰好 Ans−(a−1)b≡0(moda) ,那么Ans肯定是符合题目要求的,因为Ans-(a-1)b < 0。所以 Ans≡−(a−1)b≡b(moda) 显然最大的Ans是(a-1)b-a=ab-a-b