GRADING


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 493M

Problem type

Người ta muốn xây dựng một tuyến đường qua một vùng đất. Tuyến đường có chiều dài n và được chia thành n đoạn. Để làm được việc này thì đầu tiên người ta phải san nền cho vùng đất mà tuyến đường sẽ đi qua. Ban đầu, nền đường tại đoạn thứ i có độ cao là h[i]. Người ta muốn sau khi san nền tại tất cả các đoạn đường để nền đường đều có cùng một độ cao là k. Để làm được việc đó thì tại những đoạn mà nền đường có độ cao h[i] >= k người ta cần đào bỏ đi một lượng đất h[i] - k và tại những đoạn mà nền đường có độ cao h[i] < k người ta cần đắp thêm một lượng đất là |k - h[i]|. Tổng lượng đất đào, đắp sẽ là tổng lượng đất phải đào bỏ đi và phải đắp thêm ở n đoạn đường.

Yêu cầu: Cho n và độ cao của n đoạn đường h[1], h[2], …, h[n], với mỗi giá trị của k, hãy xác định tổng lượng đất đào, đắp.

Dữ liệu:

  • Dòng đầu tiên ghi hai số nguyên dương n và m, trong đó n là chiều dài của đoạn đường và m là số lượng giá trị cần xác định tổng lượng đất phải đào, đắp ở n đoạn đường;

  • Dòng thứ i trong n dòng tiếp theo ghi số nguyên dương h[i] là độ cao của nền đường tại đoạn thứ i;

  • Dòng thứ j trong m dòng cuối ghi số nguyên dương k[j]

Kết quả:

Ghi ra m dòng, dòng thứ j ghi tổng lượng đất đào, đắp ứng với độ cao k[j]

Sample Input

4 3
1
3
4
2
1
2
5

Sample Output

6
4
10

Giới hạn:

1 ≤ n, m ≤10^5, 1 ≤ h[i] ≤ 10^9, 1 ≤ k[j] ≤ 10^9
Có 50% test 1 ≤ n ≤ 2×10^4

Comments

There are no comments at the moment.