Cầu thang

Xem dạng PDF

Gửi bài giải

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

Dạng bài

Cầu thang bộ dẫn lên phòng đọc của Thư viện trường có ~n~ bậc, đánh số từ ~1~ đến ~n~ theo thứ tự từ dưới lên; mặt đất được coi là bậc ~0~. Bạn An đang đứng ở mặt đất và muốn lên đúng bậc ~n~. Mỗi bước, An bước lên từ ~1~ đến ~k~ bậc: đang ở bậc ~i~, An có thể bước tới một trong các bậc ~i+1, i+2, \ldots, i+k~ (không được bước quá bậc ~n~).

Đợt này có ~m~ bậc đang được lát lại đá nên An không được đặt chân lên các bậc đó. Bậc ~n~ không nằm trong số các bậc đang sửa.

Yêu cầu

Hãy đếm số cách để An đi từ mặt đất lên bậc ~n~. Hai cách đi được coi là khác nhau nếu tập hợp các bậc An đặt chân lên khác nhau. Vì kết quả có thể rất lớn, chỉ cần ghi ra phần dư của nó khi chia cho ~10^9 + 7~.

Dữ liệu vào

  • Dòng thứ nhất chứa ba số nguyên ~n~, ~k~ và ~m~;
  • Dòng thứ hai chứa ~m~ số nguyên đôi một khác nhau ~b_1, b_2, \ldots, b_m~ là các bậc đang sửa, được cho theo thứ tự bất kỳ. Nếu ~m = 0~ thì dòng này là dòng trống.

Kết quả ra

Ghi ra một số nguyên duy nhất là số cách đi, lấy dư cho ~10^9 + 7~ (ghi ~0~ nếu không có cách nào).

Ràng buộc

~1 \le k \le n \le 10^6~; ~0 \le m \le \min(n - 1,\ 10^5)~; ~1 \le b_j \le n - 1~.

  • Subtask 1 (20% số điểm – test 01–04): ~n \le 20~;
  • Subtask 2 (20% số điểm – test 05–08): ~n \le 5000~;
  • Subtask 3 (25% số điểm – test 09–13): ~k \le 10~;
  • Subtask 4 (35% số điểm – test 14–20): không có ràng buộc bổ sung.

Ví dụ

Dữ liệu vào mẫu 1
5 2 1
3
Kết quả ra mẫu 1
2
Dữ liệu vào mẫu 2
4 3 0

Kết quả ra mẫu 2
7

Giải thích

Ở ví dụ thứ nhất, bậc ~3~ đang sửa nên chỉ có hai cách đi: ~0 \to 1 \to 2 \to 4 \to 5~ và ~0 \to 2 \to 4 \to 5~.

Ở ví dụ thứ hai không có bậc nào đang sửa (dòng thứ hai của dữ liệu vào là dòng trống). Có ~7~ cách đi, ứng với các dãy độ dài bước: ~1{+}1{+}1{+}1~, ~1{+}1{+}2~, ~1{+}2{+}1~, ~2{+}1{+}1~, ~2{+}2~, ~1{+}3~, ~3{+}1~.


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.