ブルーブリッジカップ2013-地方大会-C / C ++ - 8つの質問のグループ

トピック
のタイトル:購入数

    暁明はお菓子屋をオープンしました。彼の創意工夫:パケットにフルーツの砂糖パケットパケットの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 }

 

 

 

 

おすすめ

転載: www.cnblogs.com/memocean/p/12401899.html