Jump - Jump
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 512 megabyte
Đăng bởi: trunglhpk97

Một lần nữa công chúa lại bị quái vật bắt đi. Mario, một hiệp sĩ đã từng giải cứu công chúa trước đây, tiếp tục xung phong lên đường  lần nữa để giải cứu công chúa. Thử thách lần này không phải chiến đấu với quái vật mà chỉ cần vượt qua địa hình đã được hình thành sẵn. Địa hình có thể được biểu diễn như là các cột đánh số từ 1 đến N ( N <= 10000), cột thứ i có chiều cao là h[i] (1 <= h[i] <= 1000). Mario đang ở cột 1 và công chúa đang ở cột N. Mục tiêu là cần phải di chuyển được từ ô 1 đến ô N. Khi di chuyển từ cột i đến i+1, gọi dif là chênh lệch giữa 2 cột, thì Mario sẽ mất năng lượng là C*dif( C là một số cho trước). Tuy nhiên, trước khi đi, Mario đã được cha là Moria truyền lại cho một loại phép thuật vô cùng đặc biệt, đó là có thể tăng chiều cao của một bất kì. Khi sử dụng phép thuật để tăng một cột cao thêm X đơn vị, Mario sẽ mất X^2 năng lượng.

Hãy giúp Mario xác định năng lượng ít nhất sẽ dùng để di chuyển được từ cột 1 đến N.

Input: Dòng đầu tiên chứa 2 số N và C.

N dòng tiếp theo, mỗi dòng chứa một số nguyên h[i] tương ứng với độ cao của cột i.

Output: Năng lượng ít nhất mà Mario cần dùng.

Example:

Jump.inp

Jump.out

5 2

2

3

5

1

4

15.

*Giải thích: Nâng cột 1 thêm 1, cột 4 thêm 2. Khi đó, chiều cao các cột lần lượt là 3 3 5 3 4. Tổng chi phí là 15.

 * 50% số test có N <= 1000, h[i] <= 100.

Ví dụ

Back to Top