QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#23263. Robôs

الإحصائيات

Há $N$ robôs numa circunferência. A posição mais a norte tem o número $0$. Divide-se a circunferência em $M$ partes iguais ($M \ge N$) e numeram-se os restantes pontos de divisão de $1$ a $M-1$ no sentido horário. Assim se definem as posições de $0$ a $M-1$ (figura 1). Inicialmente, os robôs ocupam $N$ posições distintas.

A distância entre duas posições $x,y$ é definida como $y-x$ ($y \ge x$). Um robô $R_i$ na posição $x_i$ pode vigiar pontos dentro de um alcance fixo $R>0$ em ambos os sentidos. Se $a$ é a posição à distância $R$ de $x_i$ no sentido anti-horário e $b$ a posição à distância $R$ no sentido horário, o robô $R_i$ vigia a parte da circunferência de $a$ até $b$ no sentido horário.

Queremos vigiar toda a circunferência. As posições iniciais podem deixar partes sem vigilância, pelo que queremos mover os robôs para a cobrir por completo. Supomos $M \le 2RN$, garantindo que existe sempre tal movimento.

Os robôs só podem mover-se para as posições definidas acima, e cada robô pode mover-se no máximo uma vez. Queremos minimizar a maior distância percorrida por qualquer robô.

Por exemplo, na figura 1, os três robôs $R_1,R_2,R_3$ estão nas posições $1,2,5$, respetivamente, e o alcance é $R=2$. Para vigiar toda a circunferência, $R_1$ move-se para a posição $0$ e $R_3$ para a posição $6$. Este movimento minimiza a maior distância percorrida.

problem_23263_bdca97a58be2f44631e734329e86019a.png

Figura 1

Dadas as posições de $N$ robôs, o alcance $R$ e o inteiro $M$, encontre e imprima o menor valor possível da máxima distância percorrida ao movê-los para vigiar toda a circunferência.

Entrada

A entrada padrão fornece a seguinte informação. A primeira linha contém o número de robôs $N$ ($1 \le N \le 1,000,000$). A segunda contém dois inteiros $R,M$ que definem o alcance de vigilância e as posições na circunferência ($1 \le R,M \le 10^9$, $N \le M \le 2RN$). A linha seguinte contém $N$ inteiros distintos $x_i$ ($0 \le x_i \le M-1$, $i=1,\ldots,N$), separados por espaços, que indicam as posições iniciais dos robôs.

Subtarefas

  • Subtarefa 1: 10 de 100 pontos; $M \le 10$.

  • Subtarefa 2: 30 de 100 pontos; $N \le 7,000$.

  • Subtarefa 3: 60 de 100 pontos; sem restrições além das originais.

Saída

Imprima na saída padrão o menor valor possível da máxima distância percorrida pelos robôs para vigiar toda a circunferência.

Exemplos

Entrada 1

3
2 10
1 2 5

Saída 1

1

Entrada 2

6
1 11
0 1 2 3 4 5

Saída 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.