QOJ.ac

QOJ

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

#23263. Roboter

Statistics

Auf einem Kreis stehen $N$ Roboter. Die nördlichste Position erhält die Nummer $0$. Der Kreis wird in $M$ gleiche Teile geteilt ($M \ge N$), und die übrigen Teilungspunkte werden im Uhrzeigersinn von $1$ bis $M-1$ nummeriert. So entstehen die Positionen $0$ bis $M-1$ (Abbildung 1). Anfangs stehen die Roboter auf $N$ verschiedenen Positionen.

Der Abstand zwischen zwei Positionen $x,y$ ist als $y-x$ definiert ($y \ge x$). Ein Roboter $R_i$ auf Position $x_i$ kann Punkte innerhalb einer festen Reichweite $R>0$ in beiden Richtungen überwachen. Ist $a$ die Position im Abstand $R$ gegen den Uhrzeigersinn von $x_i$ und $b$ die Position im Abstand $R$ im Uhrzeigersinn, überwacht $R_i$ den im Uhrzeigersinn von $a$ nach $b$ verlaufenden Teil des Kreises.

Wir möchten den gesamten Kreis überwachen. Bei der anfänglichen Aufstellung können Teile unüberwacht bleiben; dann sollen die Roboter so bewegt werden, dass sie den gesamten Kreis abdecken. Wir nehmen $M \le 2RN$ an, wodurch eine solche Bewegung stets möglich ist.

Roboter dürfen nur zu den oben definierten Kreispositionen bewegt werden, und jeder Roboter darf höchstens einmal bewegt werden. Der größte von einem Roboter zurückgelegte Weg soll minimiert werden.

In Abbildung 1 stehen beispielsweise drei Roboter $R_1,R_2,R_3$ auf den Positionen $1,2,5$, und ihre Reichweite ist $R=2$. Um den gesamten Kreis zu überwachen, bewegt sich $R_1$ auf Position $0$ und $R_3$ auf Position $6$. Diese Bewegung minimiert den größten zurückgelegten Weg.

problem_23263_bdca97a58be2f44631e734329e86019a.png

Abbildung 1

Gegeben sind die Positionen von $N$ Robotern, ihre Reichweite $R$ und die ganze Zahl $M$. Bestimme und gib den kleinstmöglichen maximalen Bewegungsweg aus, mit dem die Roboter den gesamten Kreis überwachen können.

Eingabe

Die Standardeingabe enthält Folgendes. Die erste Zeile enthält die Roboteranzahl $N$ ($1 \le N \le 1,000,000$). Die zweite enthält zwei ganze Zahlen $R,M$, welche die Reichweite und die Kreispositionen definieren ($1 \le R,M \le 10^9$, $N \le M \le 2RN$). Die nächste Zeile enthält $N$ verschiedene ganze Zahlen $x_i$ ($0 \le x_i \le M-1$, $i=1,\ldots,N$), durch Leerzeichen getrennt, als Anfangspositionen der Roboter.

Teilaufgaben

  • Teilaufgabe 1: 10 von 100 Punkten; $M \le 10$.

  • Teilaufgabe 2: 30 von 100 Punkten; $N \le 7,000$.

  • Teilaufgabe 3: 60 von 100 Punkten; keine zusätzlichen Beschränkungen.

Ausgabe

Gib auf der Standardausgabe den kleinstmöglichen maximalen Bewegungsweg der Roboter aus, mit dem der gesamte Kreis überwacht wird.

Beispiele

Eingabe 1

3
2 10
1 2 5

Ausgabe 1

1

Eingabe 2

6
1 11
0 1 2 3 4 5

Ausgabe 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.