Вам слід написати програму або функцію, яка отримує список різних цілих чисел як вхідних та вихідних даних або повертає кількість вхідних чисел вхідних номерів у наступній піраміді перевернутого числа.
Починаючи з початкового списку на кожному кроці, ми створюємо нове з максимальними значеннями кожної пари сусідніх чисел (наприклад, 5 1 2 6
стає 5 2 6
). Ми зупиняємось, коли в списку є лише одне число.
Повна піраміда для 5 1 2 6
є
5 1 2 6
5 2 6
5 6
6
Отримана кількість випадків 3 1 2 4
( 5 1 2 6
відповідно).
Вхідні дані
- Список одного чи кількох цілих чисел без повторення. (наприклад
1 5 1 6
, недійсний.)
Вихідні дані
- Список натуральних чисел.
i
- Й елемент списку є число входженьi
го вхідного числа в пірамідах.
Приклади
Вхід => Вихід
-5 => 1
8 4 => 2 1
5 9 7 => 1 4 1
1 2 3 9 8 6 7 => 1 2 3 16 3 1 2
6 4 2 1 3 5 => 6 4 2 1 3 5
5 2 9 1 6 0 => 2 1 12 1 4 1
120 5 -60 9 12 1 3 0 1200 => 8 2 1 3 16 1 4 1 9
68 61 92 58 19 84 75 71 46 69 25 56 78 10 89 => 2 1 39 2 1 27 6 5 1 6 1 2 14 1 12
Це кодовий гольф, тому найкоротший запис виграє.
Бонусна головоломка: чи можете ви O(n*log n)
вчасно вирішити проблему ?