Einführung:
Vor ein paar Tagen habe ich diesen Beitrag mit demselben Titel gelesen, als ich ihn im HNQ gefunden habe. In dieser Frage wird diskutiert, ob die Behauptung der Präsidentschaftskandidatin Bernie Sanders, die folgendes behauptete:
Heute besitzen die 26 reichsten Milliardäre der Welt, 26, so viel Wohlstand wie die ärmsten 3,8 Milliarden Menschen auf dem Planeten, die Hälfte der Weltbevölkerung.
Link zum Video
ist wahr oder nicht. Bitte gehen Sie zur Frage selbst, um dort Antworten und Diskussionen zu erhalten.
Was die eigentliche Herausforderung betrifft, die auf dieser Behauptung basiert:
Herausforderung:
Zwei Eingänge: ein absteigend sortiert Zahlenliste und eine Anzahl (wobei ist ). Ausgabe: Die längste mögliche Suffix-Teilliste von für die die Gesamtsumme die Summe der ersten Werte in Liste .L ≤ n L
Beispiel:
Eingänge: = und .
Ausgabe:[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]
Warum?
Die ersten Werte der Liste ( ) summieren sich zu . Wenn wir alle Suffixe der verbleibenden Zahlen sowie deren Summen nehmen:[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
Das längste Suffix mit einer Summe kleiner oder gleich 700
ist [125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
mit einer Summe von 643
, also ist das unser Ergebnis.
Herausforderungsregeln:
- Werte im ersten Präfix werden nicht zum Ausgabesuffix gezählt. Dh Eingaben = und würden dazu führen , und nicht .n = 2
[10,5,5,3]
[5,3]
[5,5,3]
- I / O ist flexibel. Sie können als Liste / Stream / Array von Ganzzahlen / Dezimalzahlen / Zeichenfolgen, eine einzelne durch Trennzeichen getrennte Zeichenfolge, eine nach der anderen durch STDIN usw. eingeben. Sie können als Liste / Stream / Array von Ganzzahlen / Dezimalzahlen / Zeichenfolgen ausgeben. Drucken / Zurückgeben einer begrenzten Zeichenfolge, Drucken einer Nummer in jeder neuen Zeile usw. Ihr Anruf.
- Die Ausgabe ist garantiert nicht leer. Sie werden also nicht mit Testfällen wie zu tun haben = und führt . n = 2
[-5,-10,-13]
[]
- Sowohl (als auch) die Eingabe und / oder Ausgabe kann auch in aufsteigender Reihenfolge statt in absteigender Reihenfolge erfolgen, wenn Sie dies wünschen.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp, verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu (z. B. TIO ).
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
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)]
L = [-5,-10,-13]
und n=2
resultierenden Testfällen befassen []
. " Außerdem ist die Eingabeliste garantiert absteigend sortiert (oder Aufsteigend, wenn Sie möchten), [1,2,3]
ist also zunächst keine gültige Eingabeliste (es sei denn, Sie wählen eine aufsteigende Eingabe, in diesem Fall [1,2]
wäre dies das Ergebnis).