Đếm Chuỗi

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Clang, Clang++, Cobol, D, Groovy, Haskell, JS, Lua, Node JS, ObjectiveC, Pascal, Prolog, Pypy, Pypy 3, Python, Scala
Điểm: 1800 (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 ba kí tự abc. Bạn có thể thực hiện thao tác sau nhiều lần tùy ý hoặc không cần thao tác:

  • Chọn \(i\) \((1 \le i \le |S|)\)\(S_i\)\(S_{i+1}\) là hai kí tự khác nhau. Sau đó thay \(S_i\)\(S_{i+1}\) bằng kí tự còn lại khác hai kí tự \(S_i\)\(S_{i+1}\) (một trong ba kí tự a,b,c).

Biết rằng \(|S|\) là độ dài của xâu \(S\).

Yêu cầu: Bạn hãy đếm xem có bao nhiêu xâu 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\) chứa hai kí tự trở lên và độ dài của xâu không quá \(2 \times 10^5\)).

Output

  • In ra kết quả bài toán sau khi chia lấy dư cho \(998244353\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): Độ dài của xâu không quá \(11\).
  • Subtask \(2\) (\(70\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
abc
Output
3
Note
  • Các xâu có thể tạo nên là:
    • abc
    • aaa
    • ccc

Bình luận

Không có bình luận nào.