Đề bài
Bob có hai xâu kí tự A và B gồm các chữ cái latin thường. Theo hướng từ chỉ số nhỏ đến chỉ số lớn của các kí tự, Bob sẽ lần lượt chọn đúng xâu con khác rỗng (xâu con gồm các kí tự kề nhau) của xâu A và không giao nhau. Sau đó ghép những xâu này theo thứ tự được chọn để tạo thành một xâu mới.
Bob muốn biết có bao nhiêu cách chọn như vậy để xâu mới nhận được bằng xâu B?
Bạn hãy lập trình để tìm kết quả giúp Bob nhé.
Dữ liệu vàoCHONXAU.INP
Dữ liệu cho trong tệp văn bản CHONXAU.INP gồm:
- Dòng thứ nhất gồm ba số nguyên dương , lần lượt là: độ dài xâu A; độ dài xâu B và số xâu con cần chọn.
- Dòng thứ hai gồm một xâu độ dài là xâu A.
- Dòng thứ ba gồm một xâu độ dài là xâu B.
Kết quả raCHONXAU.OUT
Kết quả ghi ra tệp văn bản CHONXAU.OUT gồm một số nguyên là giá trị khi lấy số lượng cách chọn chia lấy dư cho .
Ràng buộc
- Có 25% số test ứng với , , , ;
- Có 25% số test ứng với , , , ;
- Có 25% số test ứng với , , , ;
- Có 25% số test còn lại ứng với , , , .
Ví dụ
Ví dụ 1
6 3 1 aabaab aab
2
Giải thích
;
Có 2 cách chọn:
→ (aab)aab
→ aab(aab)
Ví dụ 2
6 3 2 aabaab aab
7
Giải thích
;
Có 7 cách chọn:
→ (a)(ab)aab
→ (a)aba(ab)
→ a(a)ba(ab)
→ (aa)(b)aab
→ (aa)baa(b)
→ aab(a)(ab)
→ aab(aa)(b)