Ви повинні написати програму або функцію, яка приймає невід'ємне ціле число kта відсортований цілий список Lяк вхід і вихід або повертає згладжений список M.
Mстворюється із висхідного списку L, вставляючи не більше kцілих елементів, зберігаючи список відсортованим. Вставлені цілі числа слід вибирати таким чином, щоб максимальна різниця вперед Mбула якомога меншою. Ми найменуємо це найменше значення «гладкість».
Передні переліки в списку -1 3 8 11 15є, 4 5 3 4а максимальна різниця вперед 5.
З 2вставками плавність 2 10 15є, 4а можливий вихід - 2 6 10 11 15з перепадами вперед 4 4 1 4.
Вхідні дані
- Невід’ємне ціле число
k. - Цілий цілий список, що
Lмістить щонайменше 2 елементи.
Вихідні дані
- Цілочисельний список за зростанням
M. - Якщо існує декілька правильних відповідей, виведіть саме один із них (достатньо будь-якого).
- Ваше рішення має вирішити будь-який приклад тестового випадку за хвилину на моєму комп’ютері (я перевіряю лише тісні випадки. У мене ПК нижче середнього рівня).
Приклади
Введення ( k, L) => Можливий вихід та максимальна різниця вперед (що не є частиною виводу) у дужках
0, 10 20 => 10 20 (10)
2, 1 10 => 1 4 7 10 (3)
2, 2 10 15 => 2 6 10 11 15 (4)
3, 2 10 15 => 2 5 8 10 12 15 (3)
5, 1 21 46 => 1 8 15 21 27 33 39 46 (7)
5, 10 20 25 33 => 10 14 18 20 24 25 29 33 (4)
3, 4 4 6 9 11 11 15 16 25 28 36 37 51 61 => 4 4 6 9 11 11 15 16 22 25 28 36 37 45 51 59 61 (8)
15, 156 888 2015 => 156 269 382 495 608 721 834 888 1001 1114 1227 1340 1453 1566 1679 1792 1905 2015 (113)
8, -399 -35 -13 56 157 => -399 -347 -295 -243 -191 -139 -87 -35 -13 39 56 108 157 (52)
5, 3 3 3 => 3 3 3 3 (0)
Це код-гольф, тому найкоротший запис виграє.
rF<seq>щоб розпакувати двоелементні кортежі.