Introduction:
Il y a quelques jours, j'ai lu ce billet avec le même titre quand je l'ai trouvé dans la HNQ. Dans cette question, on discute de la revendication du président-candidat Bernie Sanders, qui a affirmé ce qui suit:
Aujourd'hui, les 26 milliardaires les plus riches du monde, 26, possèdent autant de richesses que les 3,8 milliards les plus pauvres de la planète, soit la moitié de la population mondiale.
Lien vers la vidéo
est vrai ou pas. Veuillez vous rendre à la question elle-même pour y trouver des réponses et des discussions.
En ce qui concerne le défi réel basé sur cette revendication:
Défi:
Deux entrées: une liste numérique triée par ordre décroissant et un nombre (où est ).
Sortie: le plus long sous-liste de suffixe possible de dont la somme totale est à la somme des premiers valeurs dans la liste .
Exemple:
Entrées: = [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]
et .
Sortie:[125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
Pourquoi?
Les valeurs de la liste ( [500,200]
) totalisent 700
. Si nous prenons tous les suffixes des nombres restants, ainsi que leurs sommes:
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
Le suffixe le plus long qui a une somme inférieure ou égale à 700
est [125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
avec une somme de 643
, voilà notre résultat.
Règles du challenge:
- Les valeurs dans le premier préfixe ne sont pas comptées dans le suffixe de sortie. Par exemple, les entrées =
[10,5,5,3]
et auraient pour résultat[5,3]
, et non[5,5,3]
. - I / O est flexible. Vous pouvez entrer sous forme de liste / flux / tableau d'entiers / décimales / chaînes, une seule chaîne délimitée, un par un via STDIN, etc. Vous pouvez également générer une liste / flux / tableau d'entiers / décimales / chaînes, imprimer / retourner une chaîne délimitée, imprimer un numéro sur chaque nouvelle ligne, etc. Votre appel.
- La sortie est garantie d'être non vide. Ainsi, vous n’avez pas à traiter de cas de tests tels que =
[-5,-10,-13]
et ce qui donne[]
. - Si vous le souhaitez, l’entrée et / ou la sortie peuvent aussi bien être dans l’ordre croissant que dans l’ordre décroissant.
Règles générales:
- C'est du code-golf , donc la réponse la plus courte en octets est gagnante.
Ne laissez pas les langues de code-golf vous décourager de poster des réponses avec des langues autres que le code de golf. Essayez de trouver une réponse aussi courte que possible à n'importe quel langage de programmation. - Les règles standard s'appliquent à votre réponse avec les règles d'E / S par défaut . Vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type de retour, de type renvoyé. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (c.-à-d. TIO ).
- En outre, l'ajout d'une explication de votre réponse est fortement recommandé.
Cas de test:
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]
et n=2
ayant abouti []
. " croissant si vous le souhaitez), il n’ya donc [1,2,3]
pas de liste d’entrée valide pour commencer (à moins que vous ne choisissiez une entrée croissante, auquel cas ce [1,2]
serait le résultat).