Розглянемо одновимірну послідовність чисел у фіксованому діапазоні, тобто
[1, 2, 4, 6, 8, 0, 2, 7, 3] in range [0, 10⟩
Вічно зростаючий графік * ** - це лінія, яка з'єднує всі точки в цій послідовності зліва направо і завжди йде вгору або залишається на рівні. При необхідності лінія обертається зверху вниз і продовжує йти звідти до наступної точки.
Мета цього виклику - розділити послідовність на різні послідовності, які не зменшуються, так що, будучи графіки разом з обмеженою вертикальною віссю, вони утворюватимуть Вічно зростаючий графік. Це робиться шляхом додавання точки до кінця однієї послідовності та до початку наступної підрядності, так що кут лінії, що перетинає верхню межу, вирівнюється з лінією, що перетинає нижню межу, і двома точками перетину мають однакову горизонтальну координату. Наведений вище приклад дасть такий результат:
[1, 2, 4, 6, 8, 10]
[-2, 0, 2, 7, 13]
[-3, 3]
І відповідний графік виглядатиме так: І з подовженою віссю для кращого перегляду: Необхідний вихід - це перелік підрядів, які утворюють частини Вічнозростаючого графіка. Створювати сюжет не потрібно, але ви отримаєте бонусні бали;). Вихід повинен певним чином відокремити підряди.
Примітки
- Діапазон завжди матиме нуль як ліва (включно) межа, а права межа буде деяким цілим числом N.
- Послідовність ніколи не буде містити значень, які не знаходяться в межах діапазону.
- Перша послідовність не має додаткової точки на початку.
- Останній підряд не має додаткового пункту в кінці.
- Не потрібно вказувати початкові індекси, які були б необхідні для побудови підрядів.
Тестові справи
Input: [0, 2, 4, 6, 1, 3, 5, 0], 7
Output: [0, 2, 4, 6, 8], [-1, 1, 3, 5, 7], [-2, 0]
Input: [1, 1, 2, 3, 5, 8, 3, 1], 10
Output: [1, 1, 2, 3, 5, 8, 13],[-2, 3, 11],[-7, 1]
Input: [5, 4, 3, 2, 1], 10
Output: [5, 14],[-5, 4, 13],[-6, 3, 12],[-7, 2, 11],[-8, 1]
Input: [0, 1, 4, 9, 16, 15, 0], 17
Output: [0, 1, 4, 9, 16, 32], [-1, 15, 17], [-2, 0]
Оцінка балів
Це код-гольф, найкоротший код у байтах виграє.
* Не власне жаргон ** Насправді слід називати вічний не зменшуючий графік, як зазначав @ngm, але це звучить менш вражаюче.