Xâu nhỏ nhất
Đề bài
Mô tả
Cho một xâu chỉ gồm hai loại ký tự a và b.
Ta xét lần lượt tất cả các tiền tố của có độ dài từ đến , theo thứ tự từ ngắn nhất đến dài nhất. Với mỗi tiền tố, ta được phép đảo ngược tiền tố đó hoặc giữ nguyên. Các quyết định được thực hiện tuần tự: xử lý xong tiền tố độ dài mới chuyển sang tiền tố độ dài , và mọi thao tác đảo ngược sau đó tác động lên xâu đã bị biến đổi bởi các thao tác trước.
Hãy chọn tập các tiền tố cần đảo ngược sao cho xâu thu được sau khi xét hết tất cả tiền tố là nhỏ nhất theo thứ tự từ điển.
Dữ liệu vào
Một dòng duy nhất chứa xâu chỉ gồm các ký tự a và b.
Dữ liệu ra
In ra đúng số nguyên. Số thứ bằng nếu cần đảo ngược tiền tố độ dài (đoạn từ vị trí đến ), và bằng nếu ngược lại.
Nếu có nhiều cách cho ra kết quả tối ưu, in ra một cách bất kỳ.
Ràng buộc
- chỉ gồm các ký tự
avàb.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| bbab | 0 1 1 0 | Đảo ngược tiền tố độ dài 2 rồi độ dài 3 sẽ biến bbab thành abbb — đây là xâu nhỏ nhất có thể tạo được từ các ký tự của bbab. |
| aaaaa | 0 0 0 0 1 | Mọi ký tự đều là a, nên đảo ngược tập tiền tố nào cũng cho ra aaaaa. Nhiều đáp án khác cũng được chấp nhận. |
Bình luận