前書き:
数日前、HNQで出会ったときに同じタイトルでこの投稿を読みました。この質問では、大統領候補のバーニー・サンダースが次のように主張しているという主張が議論されています。
今日、世界で最も裕福な26人の億万長者、26人は、世界人口の半分である地球上で最も貧しい38億人と同じくらいの富を所有しています。
ビデオへのリンク
真実かどうか。質問とその質問への回答とディスカッションをご覧ください。
この主張に基づく実際の課題に関しては:
チャレンジ:
2つの入力:降順で並べ替えられた数値リストと数値(は)。出力:合計が≤リストLの最初のn個の値の合計である、Lの可能な最長のサフィックスサブリスト。
例:
入力: = [500,200,150,150,125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
及び。
出力:[125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
どうして?
リストL()の最初の値は合計します。残りの数字のすべての接尾辞とその合計をとると:[500,200]
700
Suffix: Sum:
[-3] -3
[-2,-3] -5
[0,-2,-3] -5
[1,0,-2,-3] -4
[2,1,0,-2,-3] -2
[2,2,1,0,-2,-3] 0
[3,2,2,1,0,-2,-3] 3
[5,3,2,2,1,0,-2,-3] 8
[5,5,3,2,2,1,0,-2,-3] 13
[5,5,5,3,2,2,1,0,-2,-3] 18
[5,5,5,5,3,2,2,1,0,-2,-3] 23
[10,5,5,5,5,3,2,2,1,0,-2,-3] 33
[10,10,5,5,5,5,3,2,2,1,0,-2,-3] 43
[20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 63
[30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 93
[30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 123
[40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 163
[50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 213
[55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 268
[75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 343
[75,75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 418
[100,75,75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 518
[125,100,75,75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 643
[150,125,100,75,75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 793
[150,150,125,100,75,75,55,50,40,30,30,20,10,10,5,5,5,5,3,2,2,1,0,-2,-3] 943
以下の合計を持つ最長の接尾辞700
は[125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
、合計で643
あるため、これが結果です。
チャレンジルール:
- 最初のプレフィックスの値は、出力サフィックスにカウントされません。すなわち、入力 =
[10,5,5,3]
およびは、[5,3]
であり、ではありません[5,5,3]
。 - I / Oは柔軟です。あなたは、入力することができますの整数/小数/文字列のリスト/ストリーム/配列として、単一の区切り文字列、STDINを1つずつ、などあなたは、整数/小数/文字列のリスト/ストリーム/配列として出力することができますだけでなく、区切り文字列を印刷/返す、各改行に数字を印刷するなど。
- 出力は空でないことが保証されます。あなたのようなテストケースに対処する必要はありませんので、 =
[-5,-10,-13]
及びになります[]
。 - 入力と出力の両方(またはいずれか)は、必要に応じて降順ではなく昇順でもかまいません。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーター、戻り値型、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース:
Inputs: L=[500,200,150,150,125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3], n=2
Output: [125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
Inputs: L=[10,5,5,3], n=2
Output: [5,3]
Inputs: L=[7,2,1,-2,-4,-5,-10,-12], n=7
Output: [-12]
Inputs: L=[30,20,10,0,-10,-20,-30], n=1
Output: [20,10,0,-10,-20,-30]
Inputs: L=[100,35,25,15,5,5,5,5,5,5,5,5,5,5,5,5,5], n=1
Output: [15,5,5,5,5,5,5,5,5,5,5,5,5,5]
Inputs: L=[0,-5,-10,-15], n=2
Output: [-10,-15]
Inputs: L=[1000,999,998,900,800,766,525,525,400,340,120,110,80,77,33,12,0,-15,-45,-250], n=2
Output: [525,525,400,340,120,110,80,77,33,12,0,-15,-45,-250]
Inputs: L=[10,5,5], n=1
Output: [5,5]
[131000000000, 96500000000, 82500000000, 76000000000, (7.7 billion more entries)]
:p
L = [-5,-10,-13]
そしてn=2
その結果[]
。」また、入力リストがソート降順であることが保証される(またはを選択した場合は昇順)で[1,2,3]
始まるため、有効な入力リストではありません(昇順入力を選択した場合[1,2]
を除き、その場合は結果になります)。