A
長さの配列を考えn
ます。配列には正の整数のみが含まれます。たとえばA = (1,1,2,2)
。f(A)
のすべての空でない隣接部分配列の合計のセットとして定義しましょうA
。この場合f(A) = {1,2,3,4,5,6}
。作成する手順f(A)
は次のとおりです。
の部分配列はA
です(1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
。それぞれの合計は1,1,2,2,2,3,4,4,5,6
です。したがって、このリストから取得するセットはです{1,2,3,4,5,6}
。
仕事
S
正の整数と配列の長さのみを含むソートされた順序で指定された合計のセットが与えられたn
場合、あなたのタスクは、少なくとも1つの配列を出力するX
ことf(X) = S
です。
例えば、場合S = {1,2,3,5,6}
やn = 3
、有効な出力がありますX = (1,2,3)
。
そのような配列がない場合X
、コードは定数値を出力する必要があります。
例
入力:n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
、可能な出力:X = (3, 5, 1, 4)
入力:n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
、可能な出力:X = (5, 3, 2, 2, 5, 5)
入力:n=6, S = (2, 4, 6, 8, 10, 12, 16)
、可能な出力:X = (4, 2, 2, 2, 2, 4)
入力:n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
、可能な出力:X = (4, 2, 1, 1, 2, 4)
入力:n=10, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25)
、可能な出力:X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
。
入力:n=15, S = (1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31)
、可能な出力:X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
。
入出力形式
あなたのコードは入力を受け取り、あなたが便利だと思うどんな人間が読みやすい形式でも出力を与えることができます。ただし、質問の例でテストの出力を示してください。
実行時間
問題のすべての例について、コードを最後まで実行できる必要があります。これは、原則的にのために正しいはずですn
まで15
しかし、あなたはそれがすべての入力のために十分な速さになることを証明する必要はありません。