De nos jours, il existe de nombreuses applications de type « app-tech » qui permettent d’obtenir des points et de gagner de petits lots en accomplissant des missions du quotidien. La mission podomètre est largement utilisée dans divers services d’app-tech : marcher $D$ mètres chaque jour permet de gagner quelques points.
Comme marcher $D$ mètres chaque jour est en fait assez contraignant, Hanbyeol a fondé la startup StartHanbyeol, qui propose un service de réalisation de missions podomètre à la place des personnes qui n’ont pas envie de les faire elles-mêmes. StartHanbyeol a d’abord installé des casiers espacés de $1$ mètre le long d’une route orientée est-ouest qui passe devant son siège, et leur a attribué des numéros entiers. Le casier situé à $A$ mètres à l’est du siège porte le numéro $A$, celui à $A$ mètres à l’ouest porte le numéro $-A$, et le casier situé dans le bâtiment porte le numéro $0$.
Vous devez partir du siège de StartHanbyeol, accomplir les missions de tous les clients, puis revenir au siège. Avant que vous ne commenciez votre travail, tous les clients ont déjà déposé leur téléphone dans le casier numéro $X_i$. Vous devez vous rendre au casier $X_i$, prendre le téléphone, puis parcourir au moins $D$ mètres et rapporter le téléphone au casier $X_i$. Vous disposez d’un sac suffisamment grand pour contenir plusieurs téléphones à la fois, vous pouvez donc vous déplacer avec. Votre parcours est enregistré comme temps de travail, vous ne pouvez donc vous déplacer que sur la route.
Écrivez un programme qui calcule la distance minimale à parcourir pour accomplir les missions de tous les clients et revenir.
Entrée
La première ligne contient deux entiers séparés par une espace : le nombre de clients $N$ et la distance minimale à parcourir $D$ pour accomplir une mission. ($1 \leq N \leq 1\,000\,000$ ; $1 \leq D \leq 10^9$)
La deuxième ligne contient $N$ entiers $X_i$ séparés par des espaces, représentant les numéros des casiers où chaque client a déposé son téléphone. ($-10^9 \leq X_i \leq 10^9$)
Les positions des téléphones peuvent coïncider entre elles ou avec le siège de StartHanbyeol.
Toutes les valeurs en entrée sont des entiers.
Sortie
Affichez sur la première ligne la distance minimale nécessaire pour accomplir les missions des $N$ clients et revenir.
Si la réponse n’est pas un entier, affichez le plus grand entier inférieur ou égal à la réponse.
Exemples
Entrée 1
3 5 -8 1 5
Sortie 1
36
Remarque
La méthode suivante est optimale.
- Prendre le téléphone du $2^\text{e}$ client.
- Prendre le téléphone du $3^\text{e}$ client.
- Se déplacer jusqu’à un point situé à $7.5$ m à l’est du siège de StartHanbyeol, puis revenir et rendre le téléphone du $3^\text{e}$ client.
- Rendre le téléphone du $2^\text{e}$ client.
- Prendre le téléphone du $1^\text{er}$ client.
- Se déplacer jusqu’à un point situé à $10.5$ m à l’ouest du siège de StartHanbyeol, puis revenir et rendre le téléphone du $1^\text{er}$ client.
- Rejoindre le siège de StartHanbyeol.