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