Wprowadzenie:
Kilka dni temu przeczytałem ten post z tym samym tytułem, gdy natknąłem się na niego w HNQ. W tym pytaniu dyskutuje się, czy roszczenie kandydata na prezydenta Bernie Sandersa, który twierdził, co następuje:
Dzisiaj 26 najbogatszych na świecie, 26 miliarderów, ma obecnie tyle samo bogactwa, co najbiedniejszych 3,8 miliarda ludzi na świecie, połowa populacji świata.
Link do wideo
jest prawdą czy nie. Proszę przejść do samego pytania w celu uzyskania odpowiedzi i dyskusji.
Jeśli chodzi o faktyczne wyzwanie oparte na tym twierdzeniu:
Wyzwanie:
Dwa wejścia: malejąca posortowana lista liczb i liczba (gdzie to ). Wydajność: najdłuższy sufiks podmenu z dla których suma jest sumy pierwszego wartości w zestawieniu .L ≤ n L
Przykład:
Wejścia: = i .
Wydajność:[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]
Czemu?
Pierwsze wartości z listy ( ) sumują się do . Jeśli weźmiemy wszystkie przyrostki pozostałych liczb, a także ich sumy:[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
Najdłuższy przyrostek, którego suma jest mniejsza lub równa, 700
to [125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]
suma 643
, więc taki jest nasz wynik.
Zasady konkursu:
- Wartości w pierwszym prefiksie nie są liczone do sufiksu wyjściowego. Tj. Wejścia = i spowodują , a nie .
[10,5,5,3]
[5,3]
[5,5,3]
- I / O jest elastyczny. Możesz wprowadzić jako listę / strumień / tablicę liczb całkowitych / dziesiętnych / ciągów, pojedynczy ciąg rozdzielany, jeden po drugim poprzez STDIN itp. Możesz również wyprowadzać jako listę / strumień / tablicę liczb całkowitych / dziesiętnych / ciągów, wydrukuj / zwróć rozdzielany ciąg, wydrukuj numer na każdej nowej linii itp. Twoje połączenie.
- Dane wyjściowe gwarantują, że nie będą puste. Więc nie będzie mieć do czynienia z przypadków testowych, takich jak = a skutkuje . n = 2
[-5,-10,-13]
[]
- Zarówno (jak i oba) dane wejściowe i / lub wyjściowe mogą być również w porządku rosnącym zamiast malejącym, jeśli chcesz.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
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]
i n=2
wynikowymi []
. ” Ponadto lista wejściowa jest gwarantowana posortowana malejąco (lub rosnące, jeśli zdecydujesz), więc [1,2,3]
nie jest prawidłową listą wejściową na początek (chyba że wybierzesz rosnące wejście, w takim przypadku [1,2]
byłby to wynik).