QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#18673. 만보기 대행 서비스

Statistics

Hoy en día, existen muchos servicios de app-tech con los que se pueden obtener puntos y pequeños premios al completar misiones en la vida cotidiana. La misión del podómetro es ampliamente utilizada en varios servicios de app-tech: si se logra caminar $D$ metros al día, se pueden obtener algunos puntos.

Como caminar $D$ metros cada día es más engorroso de lo que parece, para las personas que no quieren realizar la misión por sí mismas, Hanbyeol fundó la startup Start Hanbyeol, que se dedica a realizar la misión del podómetro por encargo. En Start Hanbyeol, primero instalaron casilleros a intervalos de $1$ metro a lo largo de una carretera que corre de este a oeste pasando por el edificio de Start Hanbyeol, y les asignaron números enteros. El número del casillero ubicado a $A$ metros al este del edificio de Start Hanbyeol es $A$, el número del casillero a $A$ metros al oeste es $-A$, y el número del casillero en el edificio es $0$.

Debes partir desde el edificio de Start Hanbyeol, realizar las misiones de todos los clientes y luego regresar a la empresa. Antes de que comiences tu trabajo, todos los clientes ya han dejado sus teléfonos en el casillero $X_i$. Debes ir al casillero $X_i$, recoger el teléfono físicamente, y después de recogerlo, debes caminar al menos $D$ metros y luego devolver el teléfono al casillero $X_i$. Como llevas una mochila suficientemente grande, puedes transportar varios teléfonos simultáneamente. Dado que tu registro de movimiento se refleja como registro de trabajo, solo debes moverte sobre la carretera.

Escribe un programa para calcular la distancia mínima que debes recorrer para completar las misiones de todos los clientes y regresar.

Entrada

En la primera línea se dan el número de clientes $N$ y la distancia mínima que se debe caminar para completar la misión $D$, separados por un espacio. ($1 \leq N \leq 1\,000\,000$; $1 \leq D \leq 10^9$)

En la segunda línea se dan $N$ enteros $X_i$ que representan el número del casillero donde cada cliente dejó su teléfono, separados por espacios. ($-10^9 \leq X_i \leq 10^9$)

Las ubicaciones de los teléfonos pueden superponerse o coincidir con el edificio de Start Hanbyeol.

Todos los valores de entrada son enteros.

Salida

En la primera línea, imprime la distancia mínima necesaria para completar las misiones de los $N$ clientes y regresar.

Si la respuesta no es un número entero, imprime el entero más grande menor o igual que la respuesta.

Ejemplos

Entrada 1

3 5
-8 1 5

Salida 1

36

Nota

El siguiente método es óptimo.

  1. Recoge el teléfono del segundo cliente.
  2. Recoge el teléfono del tercer cliente.
  3. Muévete hasta un punto a $7.5$ metros al este del edificio de Start Hanbyeol, luego regresa y devuelve el teléfono del tercer cliente.
  4. Devuelve el teléfono del segundo cliente.
  5. Recoge el teléfono del primer cliente.
  6. Muévete hasta un punto a $10.5$ metros al oeste del edificio de Start Hanbyeol, luego regresa y devuelve el teléfono del primer cliente.
  7. Regresa al edificio de Start Hanbyeol.

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.