Cắt xâu đối xứng

Xem dưới dạng PDF

Gửi bài giải


Điểm: 25
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Tèo nhận được một bài tập về nhà từ thầy Hùng. Thầy cho một xâu ký tự \(S\) (chỉ gồm chữ cái Latin in thường) và yêu cầu Tèo cắt xâu này thành các đoạn liên tiếp sao cho mỗi đoạn đều là một xâu đối xứng (đọc xuôi hay đọc ngược đều giống nhau). Tèo muốn số vết cắt là ít nhất, tức là số đoạn tạo ra phải ít nhất. Nếu xâu \(S\) đã đối xứng thì thầy không tính vết cắt nào cả.

Hãy giúp Tèo tìm số vết cắt tối thiểu cần thực hiện.

Định dạng đầu vào

  • Một dòng duy nhất chứa xâu \(S\) (độ dài \(|S| \le 5000\)), chỉ gồm các chữ cái Latin in thường.

Định dạng đầu ra

  • In ra số vết cắt tối thiểu.

Ví dụ

Input:

aab

Output:

1

Ràng buộc

  • \(30\%\) số điểm ứng với \(|S| \le 100\).
  • \(30\%\) số điểm ứng với \(|S| \le 1000\).
  • \(40\%\) số điểm còn lại không có ràng buộc gì thêm.

Nhận xét

Không có ý kiến tại thời điểm này.