これは、プログラマの疑問と呼ばれるべきです
タイトル説明
コインの額面の2種類がオスカーの2枚の額面の手中にあり、正の整数と互いに素です。それぞれは、多くのオスカーの金を持っています。変更がなければ、一人で2金は、いくつかの項目彼は正確に支払っすることができません。今、オスカーは正確なアイテムを支払うことができない知っていただきたいと思い、最も高価な値がどのくらいの金でありますか?注意:入力データが正確でオスカーのために支払われていない物品の存在を確実にするために。
入力形式
2つの正整数 Aと B、金種オスカーに硬貨を示し、隙間によって分離されました。
出力フォーマット
正の整数 N の場合では、オスカーの金の手の中で最も高価な項目の値が正確に支払うことができない、彼らは変更を与えていないと述べました。
サンプル入力と出力
説明/ヒント
試料説明1 [O]
オスカーの額面の手3 と7 の多数の金との値を変更することなく、正確な金額を支払うことができない1、2,4,5,8,11 アイテム、最も高価な項目の値が11 と比較して、11 :次のような項目を、購入することができます
1 2 = 3 × 4 + 7 × 0
1 3 = 3 × 2 + 7 × 1
1 4 = 3 × 0 + 7 × 2
1 5 = 3 × 5 + 7 × 0
コード
書式#include <cstdioを> 使用して 名前空間はstdを、 INT )(主 { 長い 長い、B。 scanf関数(" %のLLDの%のLLD "、&、&B)。 printf(" %のLLD "、* BA- B)。 リターン 0 ; }
うーん、そうずさんなコード。。実際にそうチクチクコードですか???!!!
良いバー、完璧な[私]プロパティこんにゃくを証明する証拠の大物で問題にluoguソリューションを見て
分析
取ることができる <Bを
答えがあるとし 、X
もしX ≡ M A (MOD B) (1件の≤ m個の≤のB - 。1 )
その
X = M A + N B (1件の≤のm個の≤のB - 1 )
明らかにするとき のn ≥ 0のときは、 xが かもしれ A、B 代表質問に意図されていません。
したがって、 N = -1のときxが最大値、次に得るX = m個のAが- B.
明らかときに m個のmが最大値を得る B - 。1 Xの最大値、その後、X = (B - 1 )A - B = B - A - Bを
したがって 、Bは最大数で表されていないある AB - AB