Chọn ĐTQG Hưng Yên 2026 - Dán băng rôn
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Để chuẩn bị cho lễ khai giảng, nhà trường cần dán một khẩu hiệu gồm ~n~ chữ cái tiếng Anh in thường, tạo thành xâu ~S~, các vị trí đánh số từ ~1~ đến ~n~. Khẩu hiệu được cắt thành các băng rôn: mỗi băng rôn là một đoạn gồm các chữ cái liên tiếp của ~S~, hai băng rôn bất kỳ không chồng lên nhau, và ghép tất cả các băng rôn lại theo đúng thứ tự thì được lại xâu ~S~.
Một băng rôn được gọi là hợp lệ nếu đồng thời thỏa mãn hai điều kiện:
Độ dài của nó nằm trong đoạn ~[L,R]~;
Có nhiều nhất một chữ cái xuất hiện với số lần lẻ.
Mỗi băng rôn hợp lệ được gán một dấu cho biết chữ cái nào xuất hiện số lần lẻ:
Nếu có đúng một chữ cái xuất hiện với số lần lẻ thì dấu là chữ cái đó;
Nếu mọi chữ cái đều xuất hiện với số lần chẵn thì dấu là RỖNG.
Như vậy dấu nhận một trong ~27~ giá trị. Dấu của mỗi băng rôn được ghi ở mặt sau để thợ biết băng rôn nào treo ở đâu.
Hai băng rôn cạnh nhau mang cùng một dấu thì rất dễ bị treo lẫn, vì vậy nhà trường quy định: một cách cắt được gọi là chấp nhận được nếu mọi băng rôn đều hợp lệ và không có hai băng rôn cạnh nhau nào mang cùng một dấu. Lưu ý rằng RỖNG cũng là một giá trị dấu bình thường: hai băng rôn cạnh nhau cùng mang dấu RỖNG là không được phép.
Hãy tìm số băng rôn ít nhất trong tất cả các cách cắt chấp nhận được, hoặc cho biết không tồn tại cách cắt chấp nhận được nào.
Input
Dòng ~1~: ba số nguyên ~n,L,R~ ~(1 \le L \le R \le n \le 2 \cdot 10^5)~;
Dòng ~2~: xâu ~S~ gồm ~n~ chữ cái tiếng Anh in thường.
Output
Một số nguyên duy nhất: số băng rôn ít nhất, hoặc ~-1~ nếu không có cách cắt chấp nhận được nào.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~25\%~ | ~n \le 300~ |
| 2 | ~25\%~ | ~n \le 3 \cdot 10^3~ |
| 3 | ~25\%~ | ~R-L \le 20~ |
| 4 | ~25\%~ | Không có giới hạn gì thêm |
Sample Input 1
7 2 4
aabcbaa
Sample Output 1
3
Sample Input 2
8 2 4
abbaabba
Sample Output 2
3
Sample Input 3
4 2 2
aabb
Sample Output 3
-1
Notes
Cách cắt aa | bcb | aa có các dấu lần lượt là RỖNG, c, RỖNG. Chú ý rằng lấy băng rôn đầu dài nhất có thể là aab (dấu b) sẽ khiến phần còn lại cbaa không cắt được nữa.
Băng rôn abb hợp lệ vì chỉ có chữ a xuất hiện lẻ lần, nên dấu của nó là a. Cách cắt abb | aa | bba có các dấu a, RỖNG, a. Cách cắt thành ~2~ băng rôn duy nhất là abba | abba, cả hai đều mang dấu RỖNG nên bị loại.
Cách cắt duy nhất là aa | bb, cả hai băng rôn đều mang dấu RỖNG.
Bình luận