トピック
のタイトル:購入数
暁明はお菓子屋をオープンしました。彼の創意工夫:パケットにフルーツの砂糖パケットパケットの4と7二種類。キャンディアンパックを販売することはできません。
子供たちは砂糖を購入するとき、彼は2つの梱包を組み合わせるために使用しました。もちろん、お菓子の数のいくつかの組み合わせは、10砂糖を購入するために、例えば、外ではありません。
あなたは17で、最大数を購入することはできません、コンピューターテスト、ケース内のパッケージを使用することができます。17より任意の数の大きい組み合わせて4および7の実施に使用することができます。
タイトルはパッケージの数が知られている2つの間に必要とされ、組み合わせが最大の番号を見つけることができません。
入力:
各糖包装の歯数(以下1000)を表す2つの正の整数
必要な出力:
購入することができない砂糖の最大数を表す正の整数
状況がないソリューションを検討する必要はありません
例えば:
ユーザー入力:
47
プログラムすべき出力:
17
別の例:
ユーザー入力:
35
プログラムすべき出力:
7
資源のため:
ピークメモリ消費量<64M
CPU消費量<3000ms
「入力してください...」不要なコンテンツ:厳密に出力の要件に従ってください、余計ないようなものを印刷します。
1つのファイルにすべてのソースコードは、デバッグを通じて、コピー元を提出します。
注:主な機能は、0を返す必要があり
注意:のみを使用してANSI C / ANSI C ++標準では、特別な機能はビルド環境やオペレーティングシステムに依存して呼び出すことはありません。
注:すべての依存の機能を明示的にする#include <xxx>の、一般的に省略したプロジェクトのソースファイルのヘッダ・ファイルでは提供できない必要があります。
あなたが送信すると、注意を払うには、コンパイラの所望のタイプを選択します。
コード1
1 / * 2013-蓝桥-A-8完全背包* / 2の#include <iostreamの> 3の#include <CStringの> 4 使って 名前空間STDを、 5 int型の DP [ 1000年 * 1000年 + 5 ]。 6 INT メイン(){ 7 のmemset(DP、0、はsizeof (DP))。 8 int型 in_num [ 2 ]。 9 CIN >> in_num [ 0 ] >> in_num [ 1 ]。 10 INT上側= in_num [ 0 ] * in_num [ 1]; 11 DP [in_num [ 0 ] = 1 ; 12である DP [in_num [ 1 ] =] 1。; 13である ため(INT I = 0 ; I < 2 ; I ++ ){ 14 のために(INT J = in_num [I]。 J <=アッパー; J ++ ){ 15 、DP [J] + = DP [J-in_num [I]]; // プロファイルDPアレイ後者の情報の導入に使用する前に 16 } 17 } 18が INTフラグ=で0 。 19 のint ANS; 20である ため(int型(I>; iは上側= 0)&&(!フラグ); - i)を{ 21を 場合(!DP [I]){ 22の ANS = I。 23 フラグ= 1 。 24 } 25 } 26 COUT << ANS << ENDL。 27 28 }
コード2
1 / * 2013-ブルーブリッジ-A-8数論* / 2の#include <iostreamの> 3。 使用した 名前空間STD; 4 int型のmain(){ 5。 int型A、B、 6 CIN >> A >> B; 7 COUT << * BAB << ENDL; 8 // 2の最大数の数は、2つの数の積と両者の和減算する組み合わせることができない 9 }