Вступ:
Кілька днів тому я прочитав цей пост з такою ж назвою, коли натрапив на нього в HNQ. У цьому питанні обговорюється, якщо претензія кандидата в президенти Берні Сандерса, який заявив про наступне:
Сьогодні 26 найбагатших у світі 26 мільярдерів, 26, тепер володіють стільки ж багатств, скільки найбідніших 3,8 мільярда людей на планеті, що становить половину населення планети.
Посилання на відео
правда чи ні. Будь ласка, перейдіть до самого питання, щоб отримати відповіді та обговорення там.
Що стосується фактичного виклику на основі цієї претензії:
Виклик:
Два входи: низхідний відсортований список номерів та число (де дорівнює ). Вихід: найдовший можливий суфікс суб-список , для яких загальна сума суми перших значень в списку .
Приклад:
Вхідні дані: = і .
Вихід:[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]
Чому?
Перше значення списку ( ) дорівнює . Якщо взяти всі суфікси залишків чисел, а також їхні суми:[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
, так що це наш результат.
Правила виклику:
- Значення у першому префіксі не зараховуються до вихідного суфікса. Тобто введення = і n = 2 призведе до , а не .
[10,5,5,3]
[5,3]
[5,5,3]
- Введення / виведення гнучко. Ви можете вводити як список / потік / масив цілих чисел / десяткових знаків / рядків, окремий розділений рядок, по одному через STDIN тощо. Ви можете також виводити як список / потік / масив цілих чисел / десяткових знаків / рядків, надрукувати / повернути обмежений рядок, надрукувати номер на кожному новому рядку тощо. Ваш дзвінок.
- Вихід є гарантією того, що він не пустує. Тож вам не доведеться мати справу з тестовими випадками, такими як =
[-5,-10,-13]
і результаті чого[]
. - Обидва (або будь-який) вхід та / або вихід можуть також бути у порядку зростання, а не у порядку зменшення, якщо ви захочете.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила з правилами вводу / виводу за замовчуванням , тому вам дозволяється використовувати 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]
результат буде).