Điểm:
2100 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một xâu \(S\) chỉ chứa hai kí tự a
và b
. Bạn có thể thực hiện các thao tác sau nhiều lần tùy ý hoặc không cần thao tác:
- Chọn một lần chuỗi con
aa
ở vị trí bất kì mà nó xuất hiện trong xâu \(S\) và thay nó bằngb
. - Chọn một lần chuỗi con
bb
ở vị trí bất kì mà nó xuất hiện trong xâu \(S\) và thay nó bằnga
.
Yêu cầu: Bạn hãy đếm xem có bao nhiêu xâu con khác nhau có thể tạo ra với các thao tác trên.
Input
- Chứa một xâu \(S\) duy nhất (độ dài của xâu \(S\) không quá \(2 \times 10^7\)).
Output
- In ra kết quả bài toán sau khi chia lấy dư cho \(10^9+7\).
Scoring
- Subtask \(1\) (\(50\%\) số điểm): Độ dài của xâu không quá \(10^5\).
- Subtask \(2\) (\(50\%\) số điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
aaaa
Output
6
Note
- Các xâu con đã được tạo nên là:
aaaa
aab
aba
baa
bb
a
Test 2
Input
aabb
Output
5
Note
- Các xâu con đã được tạo nên là:
aabb
aaa
bbb
ab
ba
Test 3
Input
ababababa
Output
1
Note
- Ngoài chính nó ra thì ta không thể tạo một xâu con nào khác theo thao tác trên.
Test 4
Input
babbabaaba
Output
35
Bình luận