QOJ.ac

QOJ

时间限制: 2 s 内存限制: 256 MB 总分: 100 可 Hack ✓

#18673. 만보기 대행 서비스

统计

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.

  1. Prendre le téléphone du $2^\text{e}$ client.
  2. Prendre le téléphone du $3^\text{e}$ client.
  3. 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.
  4. Rendre le téléphone du $2^\text{e}$ client.
  5. Prendre le téléphone du $1^\text{er}$ client.
  6. 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.
  7. Rejoindre le siège de StartHanbyeol.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.