INCR
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