Bỏ qua đến nội dung
Kho đề HSG Tin 9Đề thi cấp tỉnh/thành phố

Bài 4 · Lập trình

Mật độ xuất hiện cao

Điểm
4 điểm
Thời gian
1 giây
Bộ nhớ
1024MB
Tên chương trình
MatDo.*
Vào / Ra
MatDo.Inp → MatDo.Out

Đề bài

Trò chơi chọn bóng mà nhóm của Tuấn thiết kế được bạn bè và giáo viên trong trường đánh giá rất cao. Sau thành công này, Tuấn cùng nhóm bạn tập trung học tập để thi vào lớp chuyên tin của một trường chuyên danh giá trong tỉnh. Những bài tập mà Tuấn làm đều yêu cầu kỹ năng thiết kế thuật toán chuyên nghiệp. Một trong các bài tập mà bạn ấy đang xây dựng thuật toán có nội dung như sau:

Cho chuỗi kí tự SS chỉ gồm các kí tự chữ cái latinh thường từ 'a', ..., 'z'. Một chuỗi con XX (gồm các kí tự ở vị trí liên tiếp) của SS được gọi là một chuỗi có mật độ xuất hiện cao nếu trong chuỗi XX có một kí tự mà số lần xuất hiện của kí tự đó nhiều hơn số các kí tự còn lại trong chuỗi XX.

Ví dụ: chuỗi SS = "abbbabced", chuỗi con XX = "abbbabc" là một chuỗi có mật độ xuất hiện cao, vì có kí tự 'b' xuất hiện 4 lần, số các kí tự còn lại là 3. Nếu XX = "abbbabce", kí tự xuất hiện nhiều lần nhất 4 lần (kí tự 'b') và số kí tự còn lại là 4. Do vậy chuỗi XX = "abbbabce" không phải là một chuỗi có mật độ xuất hiện cao.

Yêu cầu: Tìm một chuỗi con XX (gồm các kí tự ở vị trí liên tiếp) của SS là một chuỗi có mật độ xuất hiện cao và độ dài lớn nhất.

Tuấn cũng đã có thuật toán của mình, còn bạn thì sao? Hãy lập trình giải bài toán trên để đối chiếu kết quả nhé.

Dữ liệu vàoMatDo.Inp

Dữ liệu cho trong file văn bản MatDo.Inp gồm một chuỗi kí tự SS chỉ gồm các kí tự chữ cái latinh thường và có độ dài không lớn hơn 2×1052 \times 10^5.

Kết quả raMatDo.Out

Kết quả ghi ra file văn bản MatDo.Out gồm một số nguyên duy nhất là độ dài của chuỗi XX tìm được.

Ràng buộc

  • Có 30% số test ứng với 30% số điểm thỏa mãn: Chuỗi SS chỉ gồm các kí tự thuộc tập 3 kí tự {'a', 'b', 'c'} và độ dài chuỗi SS không quá 2×1032 \times 10^3.
  • Có 30% số test ứng với 30% số điểm thỏa mãn: Chuỗi SS chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi SS không quá 2×1032 \times 10^3.
  • Có 40% số test ứng với 40% số điểm thỏa mãn: Chuỗi SS chỉ gồm các kí tự chữ cái latinh thường và độ dài chuỗi SS không quá 2×1052 \times 10^5.

Ví dụ

Ví dụ 1

Dữ liệu vàoMatDo.Inp
abbbabced
Kết quả raMatDo.Out
7

Giải thích

Ta có thể chọn chuỗi XX thỏa mãn là: XX = "abbbabc" hoặc XX = "bbbabce".

Ví dụ 2

Dữ liệu vàoMatDo.Inp
ababab
Kết quả raMatDo.Out
5

Giải thích

Ta có thể chọn chuỗi XX thỏa mãn là:
XX = "ababa" vì kí tự 'a' xuất hiện 3 lần, số các kí tự còn lại là 2.
hoặc XX = "babab" vì kí tự 'b' xuất hiện 3 lần, số các kí tự còn lại là 2.

Ví dụ 3

Dữ liệu vàoMatDo.Inp
abc
Kết quả raMatDo.Out
1

Giải thích

Ta có thể chọn chuỗi XX thỏa mãn là:
XX = "a" vì kí tự 'a' xuất hiện 1 lần, số các kí tự còn lại là 0.
hoặc XX = "b", XX = "c" đều thỏa mãn.

Thuộc đề thi

Kì thi chọn học sinh giỏi tỉnh lớp 9 năm học 2022 - 2023 — Môn thi: Tin học

Nghệ An · Cấp tỉnh · Năm học 2022-2023