スタンプの組み合わせ(技術moocの北京研究所)
タイトル内容:
私たちは、異なる送料別のメッセージを満たすために、郵便局には、いくつかの小さな宗派スタンプを持っているこれらの小さな宗派スタンプまたは少数の組み合わせで、文字の送料を送信する必要があります。
さて、郵便局切手4つの異なる宗派があります。各封筒に貼付5スタンプまでは、宗派は同じでも異なっていてもよいです。
入力フォーマット:
切手の4種類の額面。
出力フォーマット:
連続した範囲の先頭から4枚の切手最大で構成される額面。
注:
結果が10である場合、これは、4つのスタンプの組合せは、送料を1,2,3,4,5,6,7,8,9,10できることを示しています。
用語集:
送料:あなたは多くのお金を費やす必要が何かを送ります。
スタンプ宗派:固定価格、知られているスタンプと州によって発行された花の紙によります。
あなたは何か、郵便局を送信する場合、重量はあなたに240ポイントを伝えるために、と述べました。だから、切手を貼る必要があります。3 80 240分Couchuよい用いて;または:現在のポストオフィススタンプが80点、50点、20点、10点4の額面がある場合は、例えば、使用して郵便料金240の異なる組み合わせを得ることができます24分10分240をプールすることができます。明らかに異なるスタンプの組み合わせが同じ送料を与えます。
サンプル入力:
1 4 12 21
出力例:
最大は71です。
1の#include <stdio.hの> 2 のint F(INT * M、INT A1、INT A2、INT A3、INT A4) 3 { 4 INT I、J、K、P。 5 用(i = 0 ; iが= < 5 ; iは++ ) 6 { 7 ため(J = 0 ; J <= 5 - I; J ++ ) 8 { 9 用(K = 0 ; K <= 5 - 、I - J。 K ++ ) 10 { 11 のために(p = 0 ; p <= 5 - 、I - 、J - kは、P ++ ) 12 { 13 であれば(A1 * iはA2の* jの+ A3 *のK + A4 * P == * + m)を 14 リターン 1 。 15 } 16 } 17 } 18 } 19 リターン 0 。 20 } 21 のint main()の 22 { 23 int型 A1、A2、A3、A4、M = 1 。 24 scanf関数(" %D%D%D%D "&A1&A2&A3&A4)。 25 一方(F(&M、A1、A2、A3、A4)) 26 M ++ 。 27 のprintf(" maxは%dです\ N。"、 - M)。 28 リターン 0 ; 29 }