QOJ.ac

QOJ

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

#18673. 만보기 대행 서비스

统计

W dzisiejszych czasach istnieje wiele usług app-tech, w których można zdobywać punkty i otrzymywać nagrody za wykonywanie codziennych misji. Misja krokomierza jest szeroko stosowana w wielu usługach app-tech – jeśli uda Ci się przejść $D$ metrów dziennie, otrzymasz trochę punktów.

Ponieważ codzienne chodzenie $D$ metrów jest bardziej kłopotliwe, niż się wydaje, Hanbyeol założył startup StartHanbyeol, który oferuje usługę wykonywania misji krokomierza za innych. StartHanbyeol najpierw zainstalował skrytki w odstępach co $1$ metr na długiej drodze wschód-zachód przechodzącej przez siedzibę StartHanbyeol, nadając im numery całkowite. Numer skrytki oddalonej o $A$ metrów na wschód od siedziby StartHanbyeol to $A$, oddalonej o $A$ metrów na zachód to $-A$, a skrytki przy siedzibie to $0$.

Musisz wyruszyć z siedziby StartHanbyeol, wykonać wszystkie misje klientów i wrócić do biura. Przed rozpoczęciem pracy wszyscy klienci już umieścili swoje telefony w skrytkach o numerach $X_i$. Musisz udać się do skrytki $X_i$, podnieść telefon, a następnie przejść co najmniej $D$ metrów po podniesieniu i odłożyć telefon z powrotem do skrytki $X_i$. Masz wystarczająco duży plecak, aby przenosić wiele telefonów jednocześnie. Ponieważ twoje ruchy są rejestrowane jako czas pracy, musisz poruszać się tylko po drodze.

Napisz program, który obliczy minimalną odległość, jaką musisz przejść, aby wykonać misje wszystkich klientów i wrócić.

Wejście

Pierwszy wiersz zawiera liczbę klientów $N$ i minimalną odległość do przejścia $D$, oddzielone spacją. ($1 \leq N \leq 1\,000\,000$; $1 \leq D \leq 10^9$)

Drugi wiersz zawiera $N$ liczb całkowitych $X_i$, oddzielonych spacjami, oznaczających numery skrytek, w których klienci umieścili telefony. ($-10^9 \leq X_i \leq 10^9$)

Telefony mogą znajdować się w tych samych skrytkach lub w skrytce przy siedzibie StartHanbyeol.

Wszystkie wartości wejściowe są liczbami całkowitymi.

Wyjście

Pierwszy wiersz powinien zawierać minimalną odległość potrzebną do wykonania misji wszystkich $N$ klientów i powrotu.

Jeśli odpowiedź nie jest liczbą całkowitą, wypisz największą liczbę całkowitą mniejszą lub równą poprawnej odpowiedzi.

Przykład

Wejście 1

3 5
-8 1 5

Wyjście 1

36

Uwagi

Poniższa metoda jest optymalna.

  1. Podnieś telefon drugiego klienta.
  2. Podnieś telefon trzeciego klienta.
  3. Przesuń się $7.5$ metra na wschód od siedziby StartHanbyeol, a następnie wróć i oddaj telefon trzeciego klienta.
  4. Oddaj telefon drugiego klienta.
  5. Podnieś telefon pierwszego klienta.
  6. Przesuń się $10.5$ metra na zachód od siedziby StartHanbyeol, a następnie wróć i oddaj telefon pierwszego klienta.
  7. Wróć do siedziby 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.