Bỏ qua đến nội dung
Kho đề HSG Tin 9Đề thi cấp tỉnh/thành phố

Bài 2 · Lập trình

Dãy số tăng

Điểm
6 điểm
Thời gian
1 giây
Bộ nhớ
1024 MB
Tên chương trình
incr.*
Vào / Ra
incr.inp → incr.out

Đề bài

Dãy số a1,a2,…,ana_1, a_2, \ldots, a_n được gọi là tăng nếu a1<a2<⋯<ana_1 < a_2 < \cdots < a_n.

Bạn được cho một dãy số b1,b2,…,bnb_1, b_2, \ldots, b_n và một số nguyên dương dd. Trong mỗi lần thao tác, bạn chọn một phần tử của dãy số và cộng thêm dd vào nó. Số thao tác ít nhất là bao nhiêu để biến đổi dãy số đã cho trở thành dãy số tăng.

Dữ liệu vàoincr.inp

Vào từ tệp văn bản incr.inp. Dòng đầu tiên chứa hai số nguyên nn và dd (1≤n≤105;1≤d≤1091 \le n \le 10^5; 1 \le d \le 10^9). Dòng thứ hai chứa nn số nguyên tương ứng là dãy số b1,b2,…,bnb_1, b_2, \ldots, b_n (1≤bi≤1091 \le b_i \le 10^9).

Kết quả raincr.out

Ghi ra tệp văn bản incr.out một số nguyên là số thao tác ít nhất để biến đổi dãy số đã cho trở thành dãy số tăng.

Ràng buộc

  • Có 30% số test ứng với 30% số điểm thỏa mãn: 1≤n,d,bi≤1021 \le n, d, b_i \le 10^2;
  • 30% số test khác ứng với 30% số điểm thỏa mãn: 1≤n≤1031 \le n \le 10^3 và 1≤d,bi≤1061 \le d, b_i \le 10^6;
  • 40% số test còn lại ứng với 40% số điểm: Không có thêm ràng buộc nào.

Ví dụ

Dữ liệu vàoincr.inp
4 2
1 3 3 2
Kết quả raincr.out
3

Giải thích

Trong ví dụ trên, ta có dãy số bb là: 1,3,3,21, 3, 3, 2 và d=2d = 2. Số thao tác ít nhất để biến đổi dãy số trở thành dãy số tăng là 3 và một trong các cách thực hiện như sau:

  • Thao tác thứ nhất: Cộng thêm dd vào phần tử thứ ba, dãy số trở thành: 1,3,5,21, 3, 5, 2;
  • Thao tác thứ hai: Cộng thêm dd vào phần tử thứ tư, dãy số trở thành: 1,3,5,41, 3, 5, 4;
  • Thao tác thứ ba: Cộng thêm dd vào phần tử thứ tư, dãy số trở thành: 1,3,5,61, 3, 5, 6 và là dãy số tăng.

Thuộc đề thi

Kỳ thi chọn học sinh giỏi cấp tỉnh THCS năm 2023 — Môn thi: Tin học - Bảng A

Quảng Ninh · Cấp tỉnh · Năm học 2022-2023