QOJ.ac

QOJ

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

#18673. 만보기 대행 서비스

统计

Trong thế giới ngày nay, có rất nhiều dịch vụ app-tech cho phép bạn kiếm điểm và nhận được những phần thưởng nhỏ khi thực hiện các nhiệm vụ trong cuộc sống hàng ngày. Nhiệm vụ đếm bước được sử dụng rộng rãi trong nhiều dịch vụ app-tech, nơi bạn có thể nhận được một số điểm nếu đi bộ thành công mỗi ngày $D$m.

Vì việc đi bộ $D$m mỗi ngày khá phiền phức, Hanbyeol đã thành lập một công ty khởi nghiệp tên là Start-Hanbyeol chuyên thực hiện các nhiệm vụ đếm bước cho những người lười trực tiếp thực hiện. Tại Start-Hanbyeol, trước tiên họ lắp đặt các tủ chứa đồ cách nhau $1$m trên một con đường dài chạy theo hướng Đông-Tây đi qua tòa nhà của Start-Hanbyeol, và đánh số nguyên cho các tủ đó. Số hiệu của tủ cách tòa nhà Start-Hanbyeol về phía đông $A$m là $A$, về phía tây $A$m là $-A$, và tủ tại tòa nhà có số hiệu là $0$.

Bạn phải xuất phát từ tòa nhà Start-Hanbyeol, thực hiện tất cả các nhiệm vụ của khách hàng, sau đó quay về công ty. Trước khi bạn bắt đầu công việc, tất cả khách hàng đã đặt điện thoại di động của họ vào tủ số $X_i$. Bạn phải đến tủ số $X_i$, nhặt điện thoại, sau đó di chuyển ít nhất $D$m và trả điện thoại lại vào tủ $X_i$. Vì bạn có một chiếc túi đủ lớn để thực hiện công việc, bạn có thể mang nhiều điện thoại cùng một lúc. Vì lịch sử di chuyển của bạn được ghi nhận là hồ sơ làm việc, bạn chỉ được di chuyển trên con đường.

Hãy viết một chương trình tính khoảng cách tối thiểu bạn phải di chuyển để thực hiện tất cả các nhiệm vụ của khách hàng và quay về.

Dữ liệu vào

Dòng đầu tiên chứa số lượng khách hàng $N$ và khoảng cách tối thiểu phải đi bộ để hoàn thành nhiệm vụ $D$, cách nhau bởi một dấu cách. ($1 \leq N \leq 1\,000\,000$; $1 \leq D \leq 10^9$)

Dòng thứ hai chứa $N$ số nguyên $X_i$ biểu thị số hiệu của tủ đựng đồ mà mỗi khách hàng đã để điện thoại, cách nhau bởi dấu cách. ($-10^9 \leq X_i \leq 10^9$)

Vị trí của các điện thoại có thể trùng nhau hoặc trùng với vị trí của tòa nhà Start-Hanbyeol.

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

Dòng đầu tiên in ra khoảng cách tối thiểu cần di chuyển để hoàn thành tất cả nhiệm vụ của $N$ khách hàng và quay về.

Nếu đáp án không phải là số nguyên, hãy in ra số nguyên lớn nhất nhỏ hơn hoặc bằng đáp án.

Ví dụ

Dữ liệu vào 1

3 5
-8 1 5

Dữ liệu ra 1

36

Ghi chú

Phương pháp dưới đây là tối ưu:

  1. Nhặt điện thoại của khách hàng thứ 2.
  2. Nhặt điện thoại của khách hàng thứ 3.
  3. Di chuyển đến điểm cách tòa nhà Start-Hanbyeol về phía đông $7.5$m, sau đó quay lại và trả điện thoại cho khách hàng thứ 3.
  4. Trả điện thoại cho khách hàng thứ 2.
  5. Nhặt điện thoại của khách hàng thứ 1.
  6. Di chuyển đến điểm cách tòa nhà Start-Hanbyeol về phía tây $10.5$m, sau đó quay lại và trả điện thoại cho khách hàng thứ 1.
  7. Di chuyển về tòa nhà 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.