Đặt dấu cộng
Đề bài
Mô tả
Cho một xâu gồm chữ số. Ta chèn đúng dấu cộng vào các vị trí giữa hai chữ số liên tiếp sao cho thu được một biểu thức số học hợp lệ: không có hai dấu cộng nào đứng cạnh nhau (giữa hai dấu cộng bất kỳ phải có ít nhất một chữ số), và không có dấu cộng nào đứng ở đầu hoặc cuối xâu. Nói cách khác, ta chọn đúng trong số khe giữa các chữ số liên tiếp.
Ví dụ, với xâu 100500 thì 100500 (không chèn dấu cộng nào), 1+00+500 và 10050+0 là các cách chèn hợp lệ, còn 100++500, +1+0+0+5+0+0 và 100500+ thì không.
Mỗi cách chèn cho ra một biểu thức; giá trị của biểu thức là tổng các số hạng, trong đó các chữ số 0 đứng đầu mỗi số hạng bị bỏ qua (chẳng hạn số hạng 08 có giá trị ).
Hãy tính tổng giá trị của tất cả các biểu thức thu được từ mọi cách chèn đúng dấu cộng. Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa xâu gồm đúng chữ số.
Dữ liệu ra
In ra một số nguyên duy nhất: tổng giá trị của tất cả các biểu thức, lấy phần dư khi chia cho .
Ràng buộc
- Xâu chỉ gồm các chữ số từ 0 đến 9, có thể có chữ số 0 đứng đầu.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 1 108 |
27 | Có cách chèn đúng dấu cộng: và . Tổng là . Lưu ý số hạng 08 được tính là . |
| 3 2 108 |
9 | Chỉ có cách chèn dấu cộng: . |
Bình luận