Số kỳ diệu chia hết cho 5

Đề bài

Mô tả

Cho một xâu a chỉ gồm các chữ số và một số nguyên dương k. Đặt s là xâu nhận được khi nối k bản sao của a lại với nhau (do đó s có độ dài |a|·k).

Bạn được phép xoá đi một số (có thể không xoá) chữ số của s, nhưng không được xoá tất cả. Các chữ số còn lại, giữ nguyên thứ tự, tạo thành một số (có thể có chữ số 0 ở đầu).

Hãy đếm số cách xoá sao cho số nhận được chia hết cho 5. Hai cách được coi là khác nhau nếu tập các vị trí bị xoá khác nhau. In ra kết quả theo modulo 109+7.

Dữ liệu vào

  • Dòng thứ nhất chứa xâu a (1|a|105), chỉ gồm các chữ số.
  • Dòng thứ hai chứa số nguyên k (1k109).

Dữ liệu ra

In ra một số nguyên duy nhất — số cách xoá hợp lệ modulo 109+7.

Ràng buộc

  • 1|a|105
  • 1k109

Ví dụ

Input Output Giải thích
1256
1
4 s=1256. Bốn số chia hết cho 5 có thể tạo ra là: 5, 15, 25, 125.
555
2
63 s=555555. Bất kỳ tập con khác rỗng nào của 6 chữ số đều chia hết cho 5, cho 261=63 cách.
13990
2
528 s=1399013990. Hai chữ số 0 ở vị trí (1-indexed) 510 là vị trí có thể kết thúc một số chia hết cho 5, đóng góp 24+29=528 cách.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0