Vous devez écrire un programme ou une fonction qui prend un entier non négatif k
et une liste entière triée L
en entrée et en sortie ou renvoie une liste lissée M
.
M
est créé à partir de la liste ascendante L
en insérant au plus k
des éléments entiers tout en conservant la liste triée. Les entiers insérés doivent être choisis de manière à ce que la différence directe maximale M
soit aussi petite que possible. Nous appellerons cette plus petite valeur "douceur".
Les différences avant de la liste -1 3 8 11 15
sont 4 5 3 4
et la différence avant maximale est 5
.
Avec les 2
insertions, la fluidité de 2 10 15
est 4
et une sortie possible est 2 6 10 11 15
avec des différences directes 4 4 1 4
.
Contribution
- Un entier non négatif
k
. - Une liste entière ascendante
L
avec au moins 2 éléments.
Production
- La liste entière croissante
M
. - S'il existe plusieurs réponses correctes, envoyez exactement l'une d'entre elles (n'importe laquelle suffit).
- Votre solution doit résoudre tout exemple de cas de test en moins d'une minute sur mon ordinateur (je ne testerai que les cas fermés. J'ai un PC inférieur à la moyenne.).
Exemples
Entrée ( k
, L
) => Une sortie possible et la différence directe maximale (qui ne fait pas partie de la sortie) entre parenthèses
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)
Il s'agit de code-golf, donc l'entrée la plus courte l'emporte.
rF<seq>
à déballer des tuples à deux éléments.