Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: DELSTR.INP
Output: DELSTR.OUT

Nguồn bài:
HNOI2223_R2
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python

Cho một xâu gồm m loại kí tự khác nhau (chỉ bao gồm các chữ cái tiếng Anh in hoa) và hai loại thao tác xoá như sau:

  • Thao tác 1: Xoá kí tự đầu hoặc kí tự cuối của xâu;
  • Thao tác 2: Xoá một kí tự ở giữa xâu.

Yêu cầu: Cho xâu S gồm N kí tự, hãy tìm cách sử dụng các thao tác xoá xâu để thoả mãn các điều kiện sau:

  • Dùng tối thiểu thao tác 2;
  • Xâu còn lại chỉ còn đúng m×k kí tự;
  • Mỗi loại kí tự chỉ xuất hiện đúng k lần.

Dữ liệu vào từ tệp văn bản DELSTR.INP:

  • Dòng đầu tiên chứa hai số m,k (2m26);
  • Dòng tiếp theo chứa xâu S (2m×kN2×105).

Kết quả ghi ra tệp văn bản DELSTR.OUT:

Gồm một số nguyên duy nhất là số thao tác 2 ít nhất được sử dụng để thoả mãn yêu cầu đề bài.

Ví dụ

Input
Copy
3 2
ABBABCABBCCCBA
Output
Copy
1
Giải thích
  • Sử dụng thao tác 1: Xoá 3 kí tự đầu và 4 kí tự cuối.
  • Sau đó dùng 1 lần thao tác 2 xoá kí tự B còn thừa ở giữa.

Thu được xâu: ABCABC thoả mãn có đúng 3×2=6 kí tự và mỗi kí tự xuất hiện đúng 2 lần.

Input
Copy
3 2
ABABAAACCC
Output
Copy
2
Giải thích
  • Xoá 1 kí tự đầu và 1 kí tự cuối, sau đó dùng hai lần thao tác 2 xoá kí tự A còn thừa ở giữa.

Ràng buộc

  • 25% số test ứng với 25% số điểm có N20;
  • 25% số test khác ứng với 25% số điểm có N100;
  • 25% số test khác ứng với 25% số điểm có N5000;
  • 25% số test còn lại ứng với 25% số điểm không có ràng buộc gì thêm.