Phân Tách Moo
Đề bài
Mô tả
Xâu được tạo bằng cách nối bản sao của xâu (độ dài ). Mỗi ký tự của là 'M' hoặc 'O'.
Một dãy con Moo là một dãy vị trí tăng dần trong gồm đúng vị trí: vị trí đầu tiên chứa ký tự 'M', vị trí còn lại đều chứa ký tự 'O'. Nói cách khác, các ký tự tại các vị trí đó ghép lại tạo thành xâu dạng "MOO...O" với đúng chữ 'O'.
Đếm số cách phân tách thành các dãy con Moo, tức số cách chia toàn bộ vị trí của thành các nhóm rời nhau, mỗi nhóm là một dãy con Moo. Hai cách phân tách được coi là khác nhau nếu tồn tại hai vị trí cùng nhóm trong cách này nhưng khác nhóm trong cách kia. In kết quả modulo .
Dữ liệu vào
- Dòng 1: Ba số nguyên , , .
- Dòng 2: Xâu độ dài chỉ chứa 'M' và 'O'.
Dữ liệu ra
Một số nguyên duy nhất: số cách phân tách modulo . Nếu không có cách nào, in ra .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 6 1 MOOMOO |
1 | = MOOMOO. Chỉ có một cách: mỗi chữ 'M' lấy hai chữ 'O' ngay sau nó. Nếu chữ 'M' đầu lấy một chữ 'O' ở nửa sau thì chữ 'M' thứ hai không đủ hai chữ 'O' đứng sau. |
| 2 6 1 MMOOOO |
6 | Hai chữ 'M' đứng trước cả bốn chữ 'O'. Chọn hai trong bốn chữ 'O' cho chữ 'M' thứ nhất, hai chữ còn lại thuộc chữ 'M' thứ hai: cách. |
| 1 4 2 MMOO |
4 | = MMOOMMOO. Mỗi nửa có cách ghép độc lập nên tổng cộng cách. |
| 1 4 100 MMOO |
976371285 | Mỗi bản sao đóng góp cách độc lập, kết quả là . |
Bình luận