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

トピック
のタイトル:パンは数字を作ります

暁明包子プルトニウムで朝食のために、ほぼ毎朝。彼は私がちょうど愛に種類汽船パンを置くことができる最初のもの汽船N種類が存在する。この包子プルトニウムを発見しました。各汽船が非常に大きいケージを持って、ケージは無限大とみなすことができます。

顧客は餃子のX番号を購入したいときはいつでも、販売蒸しパンはすぐに叔父はそれだけでいくつかのケージXバンの総作り、蒸しパン詰めの数に選出されます。そのようなA汽船、4と5の3種類がそれぞれありますが、私たちはパンを置くことができます。顧客が11個のパンを購入したい場合は、叔父ケージ2は3プラス1ケージ5から選択されます(そしておそらくケージ3プラス4の2つのケージを選出)。

もちろん、どのような場合でも、時にはBUNの叔父は、顧客の数は、購入したい一緒にこすりことができませんでした。そのようなA汽船、それぞれ図4、図5及び6を置くことができるパンの三種類があります。顧客は7個のパンを購入したいときや、叔父のこすりが一緒に出てきません。

暁明は、種の総数は掻き出すおじさんのパンのではありませんどのくらい知っていただきたいと思います。

入力
----
最初の行は、整数Nを含んでいます (1 <= N <= 100 )
、次のN行は整数愛を含んでいます。(1 <=あい<= 100  )

出力
----
答えを表す整数。番号が一緒にこすりことができなかった場合は、出力INFの数に制限があります。

たとえば、
入力し:

。4 
5。  

プログラムすべき出力:

別の例では、
入力:

。4 
。6   

プログラムすべき出力:
INF

サンプル解釈:
サンプル1について、ハッシュの数は含まれない:1、2、3、6、7、11。 
試料2について、奇数の削れ全てうちの全てが、そう無限数存在します。 

:のためのリソース
(仮想マシンを含む)ピークメモリ消費量<256M
CPU消費量<1000ミリ秒


「入力してください...」不要なコンテンツ:厳密に出力の要件に従ってください、余計ないようなものを印刷します。

注:
主な機能は、0を返す必要があり、
使用が唯一のANSI C / ANSI C ++標準、
特別な機能を呼び出すことはありませんビルド環境やオペレーティングシステムに依存します。
すべての依存する機能は、明示的にソースファイルの#include <XXX>にしなければならない
共通ヘッダを操作することによって提供することができません省略されています。

提出プロセスは、注意を払うには、希望する言語とコンパイラ型のタイプを選択した場合。

コード

1つの#include <iostreamの>
 2の#include <STDLIB.H>
 3。の#include < 文字列・H> 
 4。 使用した 名前空間STD;
 5  int型 GCD(INT A、int型 B){ // ユークリッド、最大公約数を求める
6。     復帰?B GCD(B、%のB):A;
 7。 }
 8。 INT メイン(){
 9。     INT N-;
 10      int型 A [ 105 ];
 11。     int型の D [ 100 * 100 + 5。];
 12のIS     memsetの(D、0はsizeof (d)参照)。
13      CIN >> N。
14      のためにINT iが= 0 ; iが<N; I ++ ){
 15          CIN >> [I]は、
16      }
 17      ブールフラグ= 18      のためにINT iが= 0 ; iが<N; I ++ ){
 19          のためにINT J = 0 ; J <nであり、j ++ ){
 20              であれば(!I = J){
 21                  であれば(GCD([I]、Aは[J])!= 1// 扩展欧几里得 
 22                                       // https://blog.csdn.net/weixin_43828245/article/details/102469937  
23                  {
 24                      フラグ= 25                      ブレーク;                
26                  }
 27              } 
 28          }
 29      }
 30      であれば(フラグ){
 31          COUT << " INF " << ENDL。    
32      } {
 33          D [ 0 ] = 1 ;
34          のためにINT iが= 0 ; iが<N; I ++ ){
 35              のためにINT J = 0 ; J < 10000 ; J ++ ){
 36                  であれば(D [j]){
 37                      D [J + [I]は、= 1 ;
38                      // coutの<< J + [I] <<てendl; 
39                  }
 40              }
 41          }
 42          INT NUM = 0 43          のためにINTは iは= 0 ; I < 10000 ; I ++ ){
44              であれば(D [i]が== 0 ){
 45                  NUM ++ 46              }
 47          }
 48          COUT << NUM << ENDL。
49      }
 50      
51      
52      
53 }

 

おすすめ

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