trang chủ / đề bài / dhbb23_cls_11_c

Phép cộng

Đề bài

Mô tả

Bé Lan năm nay lên lớp một. Hôm nay bé được cô giáo dạy về phép cộng, tuy nhiên vì không chú ý nghe cô giảng nên bé đã không hiểu phần phép cộng có nhớ. 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. Bé Lan thì khác: thay vì cộng phần nhớ vào cột liền kề bên trái, bé cộng nó vào 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

Cột hàng đơn vị: 8+2=10, viết 0, nhớ 1 sang cột hàng trăm. Cột hàng chục: 9+1=10, viết 0, nhớ 1 sang cột hàng nghìn. Cột hàng trăm: 2+8+1=11, viết 1, nhớ 1 sang cột hàng chục nghìn. Cột hàng nghìn: 1+3+1=5. Cột hàng chục nghìn: 1.

Là một cô bé luôn tò mò về mọi thứ, Lan hỏi bạn q câu hỏi, mỗi câu hỏi là một số nguyên n.

Yêu cầu: Với mỗi câu hỏi, hãy đếm số 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≠c. Vì số lượng cặp có thể rất lớn, hãy in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên q và d (1≤q≤103; 1≤d≤7).
  • Mỗi dòng trong q dòng tiếp theo chứa một số nguyên n (1≤n≤1020) là một câu hỏi của Lan.

Dữ liệu ra

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

Ràng buộc

  • 1≤q≤103, 1≤d≤7.
  • 1≤n≤1020.

Subtasks

  • Subtask 1 (20% số điểm): mọi số n trong các câu hỏi đều không quá 103.
  • Subtask 2 (80% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5 4
1897372
3782738
3289899
3289382
38298329
916606
750802
1052998
818378
7534798
Với d=4, phần nhớ ở mỗi cột được cộng vào cột thứ 4 bên trái.
4 2
1
10
99
1000
0
0
98
9
Ví dụ bổ sung. Với n=1 không có cặp nào. Với n=10: cột hàng đơn vị phải có tổng 0 nên không có phần nhớ, cột hàng chục có tổng 1, nên một trong hai số bằng 0, không có cặp nào. Với n=99: mỗi cột có tổng 9 không nhớ, có 10·10−2=98 cặp. Với n=1000: có 9 cặp (10x,10(10−x)) với 1≤x≤9, ví dụ 30+70: cột hàng chục 3+7=10, viết 0, nhớ 1 sang cột hàng nghìn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0