406121: GYM102270 C Divide

Memory Limit:0 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

C. Dividetime limit per test3 secondsmemory limit per test256 MBinputDIVIDE.INPoutputDIVIDE.OUT

Đằng sau sự thành công của Bitcoin, không thể không kể đến công nghệ Blockchain. Blockchain hoạt động dựa trên các khối liên kết với nhau tạo thành một chuỗi. Điều đặc biệt ở đây chính là blockchain có độ bảo mật rất cao, không thể thay đổi.

Hacker b21 đã gây chấn động toàn cầu khi đã tìm ra cách hack được Blockchain. Anh đã mã hóa toàn bộ các block trở thành một số N. Số N này phải thỏa mãn điều kiện sau:

- Là một số tự nhiên.

- Chia hết cho x.

- thuộc khoảng [A, B].

- UCLN của chữ số thứ i tính từ phải qua trái và i phải bằng 1. (Ví dụ: 321 không thỏa mãn vì UCLN(1, 1) = 1, UCLN(2, 2) = 2, UCLN(3, 3) = 3 nhưng 231 thỏa mãn vì UCLN(1, 1) = 1, UCLN(3, 2) = 1, UCLN(2, 3) = 1) .

- Bao gồm các chữ số cho trước

Các bạn hãy giúp b21 tìm ra số lượng các số như thế nhé.

Input

Dòng đầu tiên chứa ba số nguyên A, B, X.

Dòng thứ hai có xâu S chứa các chữ số 0..9 theo thứ tự tăng dần là các số có trong N

Output

Chứa duy nhất 1 số nguyên là phần dư của phép chia kết quả bài toán cho 109 + 7

Scoring

B ≤ A

10% số test ứng với A, B, X ≤ 103

30% số test ứng với A, B ≤ 106, X ≤ 105

30% số test ứng với A, B, X ≤ 1011

30% số test ứng với A, B ≤ 10100, X ≤ 105

ExamplesInput
1 20 2
1234789
Output
6
Input
1 20 3
0123678
Output
4
Note

Giải thích test 1: 2, 4, 8, 12, 14, 18

Giải thích test 2: 3, 6, 12, 18

加入题单

算法标签: