QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100

#23263. Robots

Statistics

Hay $N$ robots en una circunferencia. La posición más al norte se numera $0$. Se divide la circunferencia en $M$ partes iguales ($M \ge N$) y los demás puntos de división se numeran del $1$ al $M-1$ en sentido horario. Así se definen las posiciones del $0$ al $M-1$ (figura 1). Inicialmente, los robots ocupan $N$ posiciones distintas.

La distancia entre dos posiciones $x,y$ se define como $y-x$ ($y \ge x$). Un robot $R_i$ en la posición $x_i$ puede vigilar puntos dentro de un alcance fijo $R>0$ en ambos sentidos. Si $a$ es la posición a distancia $R$ de $x_i$ en sentido antihorario y $b$ la posición a distancia $R$ en sentido horario, el robot $R_i$ vigila la parte de la circunferencia de $a$ a $b$ en sentido horario.

Queremos vigilar toda la circunferencia. Las posiciones iniciales pueden dejar partes sin vigilancia, por lo que queremos mover los robots para cubrirla por completo. Suponemos $M \le 2RN$, lo que garantiza que siempre exista tal movimiento.

Los robots solo pueden moverse a las posiciones definidas anteriormente, y cada robot puede moverse como máximo una vez. Queremos minimizar la mayor distancia recorrida por un robot.

Por ejemplo, en la figura 1, los tres robots $R_1,R_2,R_3$ están en las posiciones $1,2,5$, respectivamente, y su alcance es $R=2$. Para vigilar toda la circunferencia, $R_1$ se mueve a la posición $0$ y $R_3$ a la posición $6$. Este movimiento minimiza la mayor distancia recorrida.

problem_23263_bdca97a58be2f44631e734329e86019a.png

Figura 1

Dadas las posiciones de $N$ robots, su alcance $R$ y el entero $M$, encuentra e imprime el mínimo valor posible de la máxima distancia recorrida al moverlos para vigilar toda la circunferencia.

Entrada

La entrada estándar proporciona lo siguiente. La primera línea contiene el número de robots $N$ ($1 \le N \le 1,000,000$). La segunda contiene dos enteros $R,M$ que definen el alcance de vigilancia y las posiciones de la circunferencia ($1 \le R,M \le 10^9$, $N \le M \le 2RN$). La siguiente contiene $N$ enteros distintos $x_i$ ($0 \le x_i \le M-1$, $i=1,\ldots,N$), separados por espacios, que indican las posiciones iniciales de los robots.

Subtareas

  • Subtarea 1: 10 de 100 puntos; $M \le 10$.

  • Subtarea 2: 30 de 100 puntos; $N \le 7,000$.

  • Subtarea 3: 60 de 100 puntos; sin restricciones además de las originales.

Salida

Imprime en la salida estándar el mínimo valor posible de la máxima distancia recorrida por los robots para vigilar toda la circunferencia.

Ejemplos

Entrada 1

3
2 10
1 2 5

Salida 1

1

Entrada 2

6
1 11
0 1 2 3 4 5

Salida 2

2

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.