INCR


Submit solution

Points: 20
Time limit: 1.0s
Memory limit: 512M

Problem type

Dãy số \(a_1,a_2,…,a_n\) được gọi là tăng nếu \(a_1<a_2<⋯<a_n.\)

Cho số nguyên dương \(n\) và dãy số nguyên không \(a_1,a_2,…,a_n.\) Cho số nguyên \(d\). Một thao tác biến đổi trên dãy là chọn một phần tử trên dãy và cộng thêm \(d\) vào nó.

Yêu cầù: Tính số thao tác biến đổi ít nhất để dãy \(a_1,a_2,…,a_n\) là dãy số tăng.

Dữ liệu vào từ file văn bản INCR.INP có khuôn dạng sau:

  • Dòng đầu chứa hai số nguyên dương \(n,d (1≤n≤10^5,1≤d≤10^9);\)

  • Dòng thứ hai gồm \(n\) số nguyên \(a_1,a_2,…,a_n (1≤a_i≤10^9);\)

Kết quả ghi ra file văn bản INCR.OUT có cấu trúc:

  • Gồm một dòng ghi một số nguyên là số thao tác ít nhất để biến đổi dãy số đã cho thành dãy tăng.

Ràng buộc:

  • Subtask 1: 30% test với \(1≤n,d,a_i≤10^2.\)

  • Subtask 2: 30% test với \(1≤n≤10^3; 1≤d,a_i≤10^6.\)

  • Subtask 3: 40% số test không có ràng buộc gì thêm.

Sample Input

4 2
1 3 3 2

Sample Output

3

Giải thích:

  • Số thứ nhất, thứ hai giữ nguyên.

  • Biến đổi số thứ 3 có giá trị 3 thành 3+2=5.

  • Biến đổi số thứ 4 hai lần thành 2 + 2 + 2 = 6.

Dãy mới thu được: 1 3 5 6, mất 3 phép biến đổi.


Comments

There are no comments at the moment.