VM 15 Bài 16 - Các sợi dây

Xem dạng PDF

Gửi bài giải

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

Nguồn bài:
VM15 - Kiên
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Ở một vùng núi, người ta dùng những sợi dây để di chuyển qua những con suối. Một sợi dây đủ dài sẽ được dùng để vắt ngang giữa hai bờ suối. Sau đó, người ta sẽ đu dây để di chuyển từ đầu này sang đầu kia. Không phải lúc nào người ta cũng có thể dễ dàng tìm được một sợi dây thừng đủ dài. Vì vậy, trong một số trường hợp, người ta phải nối các đoạn dây thừng ngắn với nhau để tạo thành một đoạn dài.

Một số đẹp là một số mà trong biểu diễn thập phân của nó, hai chữ số cạnh nhau có chênh lệch không quá ~k~ đơn vị. Ví dụ khi ~k = 1~ thì ~323321~ là một số đẹp, còn ~109899~ thì không phải số đẹp. Một đoạn dây thừng có độ dài là số đẹp sẽ khiến cho dây thừng có được sự chắc chắn.

Bờm kinh doanh các đoạn dây thừng. Hiện tại, Bờm có rất nhiều đoạn dây thừng có độ dài là các số đẹp nằm trong khoảng từ ~A~ đến ~B~. Bờm muốn tính xem có bao nhiêu cách để nối các đoạn dây thừng lại để tạo thành một đoạn dây vừa đủ để vắt qua con suối (có thể có các đoạn thừng có độ dài bằng nhau).

Biết ~k~, ~A~, ~B~ và khoảng cách giữa hai bờ suối, tính số cách để Bờm nối các sợi dây thừng để tạo thành một đoạn dây dài có độ dài bằng khoảng cách giữa hai bờ suối.

Input

Input gồm một dòng duy nhất chứa ~4~ số nguyên ~n~, ~k~, ~A~, ~B~ (~1 \leq n \leq 10^{5}~, ~0 \leq k \leq 9~, ~1 \leq A \leq B \leq n~, ~B \leq 95000~), trong đó ~n~ là khoảng cách giữa hai bờ suối.

Output

In ra số cách để nối các đoạn dây trong mô đun ~10^{9}+7~.

Giới hạn

~20\%~ số test có ~n \leq 10000~.

Sample Input 1

5 2 1 4

Sample Output 1

15

Sample Input 2

10 3 2 10

Sample Output 2

34

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.