Clue Contest 07 - ADN

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Tiến sĩ Nefario sở hữu một mã ~\text{ADN}~ được biểu thị dưới dạng một xâu ~S~ gồm các kí tự ~\text{latinh}~ in hoa (~A,B,C,\dots Z~) tương ứng với ~26~ loại nuclêôtít, Nefario sẽ thực hiện thao tác sau một số lần (có thể không thực hiện lần nào):

  • Chọn một hoặc nhiều kí tự trong xâu ~S~ (tối đa ~25~ kí tự phân biệt, có thể chọn một kí tự nhiều lần), ghép các kí tự được chọn thành xâu mới ~T~.

  • Xóa tất cả các kí tự vừa chọn khỏi ~S~.

  • Thêm kí tự có thứ tự từ điển nhỏ nhất không tồn tại trong xâu ~T~ vào đầu xâu ~S~.

Tiến sĩ Nefario muốn biết số lượng xâu ~S~ phân biệt sau khi thực hiện các thao tác này trên ~S~, bạn hãy giúp Nefario trả lời câu hỏi này nhé.

Hai xâu ~S~ và ~T~ được gọi là phân biệt với nhau khi và chỉ khi số lần xuất hiện của một kí tự ~c~ bất kì trong hai xâu là khác nhau.

INPUT

Một dòng duy nhất gồm xâu ~S~ gồm các kí tự ~\text{latinh}~ in hoa (~|S|\le 100~).

OUTPUT

Một dòng duy nhất gồm số lượng xâu ~S~ phân biệt sau các thao tác bất kì. Kết quả được in ra sau khi ~\pmod{998244353}~.

SAMPLE INPUT 1

ABB

SAMPLE OUTPUT 1

12

SAMPLE INPUT 2

BC

SAMPLE OUTPUT 2

8

GIẢI THÍCH

Tại test mẫu thứ ~2~ ta có thể tạo được các xâu ~\text{BC},\text{AC},\text{B},\text{BA},\text{AA},\text{A},\text{C},\text{BB}~. Ví dụ trên xâu ban đầu ~\text{BC}~ ta chọn kí tự ~S_1~ và loại bỏ, thêm vào kí tự ~A~ (vì ~A~ là kí tự có thứ tự từ điển nhỏ nhất không tồn tại trong xâu ~T='B')~ được xâu ~\text{AC}~.

SUBTASKS

Subtask Điểm Ràng buộc
1 ~250~ Độ dài xâu ~S~ không quá ~4~.
2 ~500~ Độ dài xâu ~S~ không quá ~20~.
3 ~750~ Xâu ~S~ chỉ chứa ký tự ~A~ và ~B~.
4 ~1500~ Không có ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.