Chúng ta hãy gọi một danh sách các chuỗi không trống là mesa nếu các điều kiện sau giữ:
- Mỗi chuỗi được liệt kê là không trống và chỉ sử dụng các ký tự xảy ra trong chuỗi đầu tiên.
- Mỗi chuỗi liên tiếp dài hơn một ký tự so với chuỗi trước.
- Không có chuỗi nào trong danh sách là chuỗi con của bất kỳ chuỗi nào khác trong danh sách.
Thuật ngữ "mesa" là từ hình dung như thế này (trong đó xs là các ký tự khác nhau):
xx..x
xx..xx
xx..xxx
.
.
.
xx..xxx..x
Lưu ý: Đó là một thực tế toán học chỉ có nhiều mesas mới bắt đầu bằng một chuỗi nhất định. Lưu ý sự khác biệt giữa dãy vs chuỗi ; ví dụ: 'anna' là một chuỗi con (nhưng không phải là chuỗi con) của 'chuối'.
Thử thách:
- Viết chương trình ngắn nhất có một chuỗi đầu vào chữ và số không trống tùy ý và xuất ra số lượng mesas bắt đầu bằng chuỗi đó.
Đầu vào (stdin):
- Bất kỳ chuỗi chữ và số không trống.
Đầu ra (thiết bị xuất chuẩn):
- Số lượng mesas bắt đầu bằng chuỗi đầu vào.
Ghi điểm:
- Người chiến thắng là chương trình có số byte ít nhất.
Ví dụ
Chỉ một mesa bắt đầu bằng a:
a
Chỉ một mesa bắt đầu bằng aa:
aa
Nhiều mesas bắt đầu với ab:
ab ab ab ab (and so on)
baa aaa bbb
bbba bbaa
baaaa
aaaaaa
ab, ab/baa, ab/bbb, ab/bbb/bbaa, ab/bbb/bbaa/baaaa, ab/bbb/bbaa/baaaa/aaaaaalà mesas khác nhau.
ab,bbbnhư một mesa chỉ bằng cách dừng lại ở nhiệm kỳ thứ hai. Điều đó có hợp lệ không? Hay họ luôn phải được thực hiện càng lâu càng tốt? Ngoài ra, nếu có nhiều chủ trương sắp xếp có thể có của cácnthhạn (ví dụ nhưbaa,aba,aab), làm họ đều được tính là mesas riêng biệt cũng như (cung cấp tất nhiên tất cả họ đều làm theo các quy tắc)?