Duyên hải Bắc Bộ 2019 - Trò chơi trên dãy số

Xem dạng PDF

Gửi bài giải

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

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Long và Vân cùng nhau chơi trò chơi trên dãy số như sau: Long sẽ chọn một dãy gồm ~n~ số ~a_1, a_2, ..., a_n~. Sau đó, Vân sẽ tìm cách biến đổi dãy số nguyên ~a_1, a_2, ..., a_n~ về dãy đẹp bậc ~d~ bằng dãy các bước biến đổi như sau: Mỗi bước, chọn một số trong dãy, tăng hoặc giảm số đó đi một đơn vị. Một dãy ~b_1, b_2, ..., b_n~ được gọi là dãy đẹp bậc ~d~ nếu ~b_i = b_{i-1} + d~ với ~i = 2, 3, ..., n~. Cụ thể, dãy ~b_1, b_2 = b_1 + d, ..., b_n = b_{n-1} + d~ là dãy đẹp bậc ~d~.

Ví dụ, dãy (3, 2, 2) với ~d = 1~ mất ít nhất 3 phép biến đổi để đưa về dãy (1, 2, 3) là một dãy đẹp bậc 1.

Yêu cầu: Cho dãy số nguyên ~a_1, a_2, ..., a_n~ và số nguyên dương ~d~, hãy tính số bước ít nhất cần dùng để biến đổi dãy ~a_1, a_2, ..., a_n~ thành một dãy đẹp bậc ~d~.

Input

  • Dòng đầu chứa số nguyên ~n~ (~n \le 1000~) và ~d~;
  • Dòng thứ hai chứa ~n~ số nguyên mô tả dãy ~a_1, a_2, ..., a_n~.

Output

  • Ghi một số nguyên là số bước ít nhất cần dùng để biến đổi dãy ~a_1, a_2, ..., a_n~ thành một dãy đẹp bậc ~d~.

Sample Input 1

3 1
3 2 2

Sample Output 1

3

Subtasks

  • Có 25% số test ứng với 25% số điểm của bài có ~d = 0~ và ~|a_i| \le 10^3~;
  • Có 25% số test khác ứng với 25% số điểm của bài có ~d = 0~ và ~|a_i| \le 10^9~;
  • Có 25% số test khác ứng với 25% số điểm của bài có ~d = 1~ và ~|a_i| \le 10^3~;
  • Có 25% số test còn lại ứng với 25% số điểm còn lại của bài có ~d \le 10^9~ và ~|a_i| \le 10^9~.

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.