题面
题目描述
小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。
现在小凯想知道:
-
在无法准确支付的物品中,最贵的价值是多少金币?
-
共有多少种无法支付的物品?
注意:输入数据保证存在小凯无法准确支付的商品。
输入格式
输入数据仅一行,包含两个正整数 a a a 和 b b b,它们之间用一个空格隔开,表示小凯手中金币的面值。
输出格式
输出 2 2 2 个整数,分别表示 2 2 2 个问题的答案。
数据范围
1 ≤ a , b ≤ 1 0 9 1\leq a,b \leq 10^9 1≤a,b≤109
分析
第一个问题:
设无法准确支付的面值为 c c c,所需 a , b a,b a,b 两种货币的数量为 x , y x,y x,y,则: a x + b y = c ax+by=c ax+by=c。
设 s = a / gcd ( a , b ) , t = b / gcd ( a , b ) s=a/\gcd(a,b),t=b/\gcd(a,b) s=a/gcd(a,b),t=b/gcd(a,b),因为 gcd ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1,所以 s = a , t = b s=a,t=b s=a,t=b
不妨设 a < b a<b a<b。
所以要使 x , y x,y x,y 最有可能都是非负整数,即要使小凯尽可能能准确支付 c c c 这一面额,就要使 x x x 成为最小范数解,所以可以表示为 a ( x % t ) + b ( y + s ⌊ x t ⌋ ) = c a(x\ \%\ t)+b(y+s\lfloor\frac{x}{t}\rfloor)=c a(x % t)