Liệt kê xâu con

Xem dạng PDF

Gửi bài giải

Điểm: 600,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

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

Một xâu ~X~ ~=~ ~x~~1~~x~~2~~...x~~M~ được gọi là xâu con của xâu ~Y~ ~=~ ~y~~1~~y~~2~~...y~~N~ nếu chúng ta có thể tạo ra xâu ~X~ từ xâu ~Y~ bằng cách xóa đi một số ký tự. Điều này có nghĩa là tồn tại một dãy các chỉ số:

  • ~1 ≤ i~~1~ ~< i~~2~ ~< ... < i~~M~ ~≤ N~ sao cho ~x~~1~ ~= y~~i~~1~~, x~~2~ ~= y~~i~~2~~, ..., x~~M~ ~= y~~i~~M~
Ví dụ
  • Xâu ~X =~ adz là xâu con của xâu ~Y =~ baczdtz.
  • Các chỉ số tương ứng là: ~i~~1~ ~= 2 < i~~2~ ~= 5 < i~~3~ ~= 7.~

Nhiệm Vụ: Liệt kê tất cả các xâu con khác nhau của xâu S.

Input

  • Một dòng duy nhất chứa xâu ~S~ có độ dài không quá ~15.~

Output

  • Dòng đầu tiên in ra số lượng xâu con.
  • Các tiếp theo liệt kê các xâu con theo thứ tự (độ dài, alphabet).

Sample test 1

Input

aba

Output

6
a
b
aa
ab
ba
aba

Sample test 2

Input

abc

Output

7
a
b
c
ab
ac
bc
abc

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.