DHBB 2023 - CLS - 11 - Phép cộng

Xem dạng PDF

Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Khi thực hiện phép cộng thập phân thông thường, nếu tổng tại một cột tạo ra phần nhớ thì phần nhớ được cộng vào cột liền kề bên trái.

Lan thực hiện phép cộng theo một cách khác: thay vì chuyển phần nhớ sang cột liền kề bên trái, Lan chuyển nó sang cột thứ ~d~ ở bên trái, tính từ cột hiện tại.

Ví dụ, với ~d=2~, phép cộng của Lan được thực hiện như sau:

  1298
+ 3812
------
 15100

Cho ~q~ câu hỏi. Mỗi câu hỏi gồm một số nguyên ~n~.

Yêu cầu: Với mỗi câu hỏi, hãy đếm số lượng cặp số nguyên dương ~(a,b)~ sao cho kết quả phép cộng ~a+b~ theo cách của Lan bằng ~n~.

Hai cặp ~(a,b)~ và ~(c,e)~ được xem là khác nhau nếu ~a\ne c~.

Vì kết quả có thể rất lớn, hãy in kết quả lấy phần dư khi chia cho ~10^9+7~.

Input

  • Dòng đầu tiên gồm hai số nguyên ~q~ và ~d~ ~(1 \le q \le 10^3;\ 1 \le d \le 7)~;

  • Mỗi dòng trong ~q~ dòng tiếp theo chứa một số nguyên ~n~ ~(1 \le n \le 10^{20})~.

Output

Gồm ~q~ dòng. Mỗi dòng chứa số lượng cặp thỏa mãn của câu hỏi tương ứng, lấy phần dư khi chia cho ~10^9+7~.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~n \le 10^3~
2 ~80\%~ Không có ràng buộc thêm

Sample Input 1

5 4
1897372
3782738
3289899
3289382
38298329

Sample Output 1

916606
750802
1052998
818378
7534798

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.