Xâu con tốt
Đề bài
Mô tả
Cho xâu gồm các chữ cái Latin thường. Mỗi chữ cái trong bảng chữ cái được đánh dấu là tốt hoặc xấu.
Xâu con (với ) là xâu . Xâu con này được gọi là tốt nếu trong các ký tự có không quá ký tự xấu.
Hãy đếm số xâu con tốt đôi một khác nhau của . Hai xâu con được coi là khác nhau khi nội dung của chúng khác nhau, tức là hai xâu con giống hệt nhau nhưng nằm ở vị trí khác nhau chỉ được tính một lần.
Dữ liệu vào
- Dòng đầu tiên chứa xâu khác rỗng, gồm các chữ cái Latin thường.
- Dòng thứ hai chứa xâu gồm đúng ký tự "0" hoặc "1". Nếu ký tự thứ bằng "1" thì chữ cái thứ của bảng chữ cái là tốt, ngược lại là xấu. Ký tự đầu tiên ứng với chữ "a", ký tự thứ hai ứng với chữ "b", và cứ như vậy.
- Dòng thứ ba chứa số nguyên là số ký tự xấu tối đa được phép xuất hiện trong một xâu con tốt.
Dữ liệu ra
In ra một số nguyên duy nhất là số xâu con tốt đôi một khác nhau của .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| ababab 01000000000000000000000000 1 |
5 | Chỉ có chữ "b" là tốt, chữ "a" là xấu, cho phép tối đa ký tự xấu. Các xâu con tốt khác nhau là "a", "ab", "b", "ba", "bab". Xâu "aba" không tốt vì chứa ký tự xấu. |
| acbacbacaa 00000000000000000000000000 2 |
8 | Mọi chữ cái đều xấu nên xâu con tốt là mọi xâu con có độ dài không quá . Có xâu như vậy: "a", "aa", "ac", "b", "ba", "c", "ca", "cb". |
| acbaabccaa 00000000000000000000000000 2 |
11 | Cũng chỉ xét các xâu con độ dài tối đa , nhưng lần này có xâu độ dài ("a", "b", "c") và xâu độ dài ("aa", "ab", "ac", "ba", "bc", "ca", "cb", "cc"). |
Bình luận