[C10_LC_23] Kích thước thanh sắt

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Một công ty xây dựng có ~N~ thanh sắt có độ dài là ~A_1, A_2, A_3, ..., A_N~. Vì nhu cầu công việc, công ty yêu cầu công nhân làm cho ~N~ thanh sắt này có cùng một độ dài ~k~. Muốn làm được việc này thì với thanh sắt có độ dài ~A_i > k~, công nhân cần cắt đi một đoạn ~A_i - k~; với thanh sắt có độ dài ~A_i < k~, công nhân phải hàn nối thêm một đoạn ~k - A_i~. Tổng độ dài các đoạn cắt đi và nối thêm sẽ là: Tổng độ dài các đoạn sắt cắt đi hoặc nối thêm ở ~N~ thanh sắt.

Yêu cầu

Do công ty chưa quyết định về độ dài ~k~ cuối cùng nên công ty nhờ bạn viết một chương trình giúp công ty tính: Với ~M~ sự lựa chọn các giá trị ~k~ là: ~k_1, k_2, k_3, ..., k_M~. Hãy tính tổng độ dài các đoạn cắt đi và nối thêm cho từng giá trị ~k~.

Dữ liệu đầu vào

Gồm ba dòng:

  • Dòng đầu tiên ghi hai số nguyên dương ~N~ và ~M~ ~(1 \le N, M \le 10^5)~;
  • Dòng thứ hai ghi ~N~ số nguyên dương ~A_1, A_2, A_3, ..., A_N~ ~(1 \le A_i \le 10^9,\ i = 1..N)~.
  • Dòng thứ ba ghi ~M~ số nguyên dương ~k_1, k_2, k_3, ..., k_M~ ~(1 \le k_j \le 10^9,\ j = 1..M)~.

Dữ liệu đầu ra

Gồm ~M~ số nguyên là tổng độ dài các đoạn cắt đi và nối thêm tương ứng với từng sự lựa chọn ~k_1, k_2, k_3, ..., k_M~, kết quả ghi trên một dòng cách nhau một dấu cách.

Ràng buộc dữ liệu

  • Có 50% số điểm ứng với các test có ~N, M \le 10^3,\ 1 \le A_i \le 10^9,\ 1 \le k_j \le 10^9~;
  • Có 50% số điểm ứng với các test có ~N, M \le 10^5,\ 1 \le A_i \le 10^9,\ 1 \le k_j \le 10^9~.

Ví dụ

Ví dụ 1
INPUT
4 3
1 3 4 2
1 2 5
OUTPUT
6 4 10

Giải thích:

  • Với ~k_1 = 1~, tổng độ dài các đoạn cắt đi và nối thêm là: ~(3 - 1) + (4 - 1) + (2 - 1) = 6~;
  • Với ~k_2 = 2~, tổng độ dài các đoạn cắt đi và nối thêm là: ~(2 - 1) + (3 - 2) + (4 - 2) = 4~;
  • Với ~k_3 = 5~, tổng độ dài các đoạn cắt đi và nối thêm là: ~(5 - 1) + (5 - 3) + (5 - 4) + (5 - 2) = 10~.
Ví dụ 2
INPUT
4 1
2 2 2 2
2
OUTPUT
0

Giải thích:

  • Với ~k_1 = 2~, không cần cắt đi hay nổi thêm thanh nào cả.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.